Потому что var UserInfo - это список.Вы не можете / должны создать объект со свойствами, которые не определены.
Если вы продолжите использовать этот подход, вы можете создать объект anonymus так, как говорит Арун Мохан.
new {
UserId = UserDetail.Id,
DoB = UserDetail.DoB,
Name = UserDetail.Name,
DocId = doc.Id,
doc.UserIdFK,
doc.ImagePath
}
Я не рекомендую использовать новый класс UserKycCompositeModel в качестве этого способа,но лучше (как производительность и управление) иметь динамические объекты.
Еще одна вещь, если вы хотите избежать вызова каждого свойства (например, UserID = UserDetail.ID), использует отражение примерно так:
UserKycCompositeModel newObj = new UserKycCompositeModel();
foreach (var item in yourObject.GetType().GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly))
{
propertyValue = item.GetValue(yourObject, null);
Type myType = typeof(newObj);
PropertyInfo myPropInfo = myType.GetProperty(item.Name);
myPropInfo.SetValue(this, value, null);
}
Есть много способов, я полагаю, не делать именно то, что вы хотите, но в зависимости от того, как вы будете использовать это в своем логическом бизнесе, вы можете сделать это по-другому.
Iпредпочитаю делать:
public class UserKycCompositeModel
{
public UserKycCompositeModel(UserDetails ud,Documents doc)
{
this.UserDetails = ud;
this.Document = doc;
}
public UserDetails UserDetails {get; private set;}
public Documents Document {get; private set;}
}
И после этого вызывать так:
var UserInfo = (from UserDetail in _userDBContext.UserDetails
join doc in _userDBContext.Documents on UserDetail.Id equals doc.UserIdFK
select new UserKycCompositeModel(UserDetail, doc)).ToList();
И использовать информацию о пользователе, такую как UserInfo.UserDetails или UserInfo.Documents.
ТамЕсть и другие способы, но, возможно, вам придется объяснить, почему вы хотите, чтобы это произошло, или посмотреть, хотите ли вы следовать обычному способу использования сущностей.