我正在尝试在nhibernate envers的修订版实体和具有用户名的列表之间执行联接。我想返回一个命名元组列表。
这是我的代码
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();
}
但是现在我找不到返回元组的方法
我也尝试
(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();
并收到有关参数不对应的错误
答案 0 :(得分:1)
我认为正确的语法应该是
(ele, p) =>
(
Oggetto: ele.RevisionEntity,
DataModifica: ele.RevisionEntity.RevisionDate.ToLocalTime(),
NomeUtente: p.NomePersona
)).ToList();
答案 1 :(得分:1)
您可以尝试
var tuples = data.Select(x => (A: x.A, B: x.B));