c# return 来自 linq join 的命名元组
c# return named tuple from linq join
我正在尝试在来自 nhibernate envers 的修订实体和包含用户名的列表之间执行连接。我想要 return 命名元组列表。
这是我的代码
public IEnumerable<(Societa company, DateTime datetime, string userName)> CompanyHistory()
{
IAuditReader auditReader = this._session.Auditer();
var revison = auditReader.CreateQuery().ForHistoryOf<Societa, RevisionEntity>().Results();
IList<Persona> user = _session.QueryOver<Persona>().List();
var query = revison.Join(user,
rev => rev.RevisionEntity.IdUtente,
us => us.Id,
(rev, us) => new
{
Oggetto = rev.RevisionEntity,
DataModifica = rev.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente = us.NomePersona
}).ToList();
}
但现在我没有找到 return 元组
的方法
- 转换无效
- 我的查询对象无法使用 ToValueTuple
我也试试
(ele, p) => new (OutputGA Oggetto, DateTime DataModifica, string NomeUtente)
{
Oggetto = ele.RevisionEntity,
DataModifica = ele.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente = p.NomePersona
}).ToList();
但是我得到了new cannot be used with tuple type
比
(ele, p) => new Tuple<OutputGA, DateTime, string>
{
Oggetto = ele.RevisionEntity,
DataModifica = ele.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente = p.NomePersona
}).ToList();
并得到关于参数不对应的错误
我认为正确的语法应该是
(ele, p) =>
(
Oggetto: ele.RevisionEntity,
DataModifica: ele.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente: p.NomePersona
)).ToList();
你可以试试这个
var tuples = data.Select(x => (A: x.A, B: x.B));
我正在尝试在来自 nhibernate envers 的修订实体和包含用户名的列表之间执行连接。我想要 return 命名元组列表。
这是我的代码
public IEnumerable<(Societa company, DateTime datetime, string userName)> CompanyHistory()
{
IAuditReader auditReader = this._session.Auditer();
var revison = auditReader.CreateQuery().ForHistoryOf<Societa, RevisionEntity>().Results();
IList<Persona> user = _session.QueryOver<Persona>().List();
var query = revison.Join(user,
rev => rev.RevisionEntity.IdUtente,
us => us.Id,
(rev, us) => new
{
Oggetto = rev.RevisionEntity,
DataModifica = rev.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente = us.NomePersona
}).ToList();
}
但现在我没有找到 return 元组
的方法- 转换无效
- 我的查询对象无法使用 ToValueTuple
我也试试
(ele, p) => new (OutputGA Oggetto, DateTime DataModifica, string NomeUtente)
{
Oggetto = ele.RevisionEntity,
DataModifica = ele.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente = p.NomePersona
}).ToList();
但是我得到了new cannot be used with tuple type
比
(ele, p) => new Tuple<OutputGA, DateTime, string>
{
Oggetto = ele.RevisionEntity,
DataModifica = ele.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente = p.NomePersona
}).ToList();
并得到关于参数不对应的错误
我认为正确的语法应该是
(ele, p) =>
(
Oggetto: ele.RevisionEntity,
DataModifica: ele.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente: p.NomePersona
)).ToList();
你可以试试这个
var tuples = data.Select(x => (A: x.A, B: x.B));