实体框架虚拟ICollections

时间:2018-09-25 14:24:02

标签: asp.net-core entity-framework-core

.NET Core Entity Framework是我的新手(代码优先),但是每天都有进展。 我现在陷入了一个可能很小的错误,无法继续。

我有一个要填写的班级列表,其中另一个列表中有一个虚拟的ICollection,要同时填写。

这些是我的课程

    public class UgInfo
    {
        public Guid UserGroupId { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public virtual ICollection<UInfo> UInfo { get; set; }
    }

    public class UInfo
    {
        public string UserEmail { get; set; }
        public string UserName { get; set; }
    }

这是发生错误的地方:

  

无效的初始化器成员声明符”

代码:

        var ugList = (from ug in _context.Usergroups
                      join uug in _context.UserUsergroup on ug.UserGroupId equals uug.UsergroupId
                      join u in _context.Users on uug.UserId equals u.UserId
                      select new UgInfo
                      {
                          UserGroupId = uug.UsergroupId,
                          Description = ug.Description,
                          Name = ug.Name,
                          new UInfo //Error
                          {
                              UserName = u.UserName,
                              UserEmail = u.Email
                          }

                      }).ToList();

        return ugList;

可以有人帮助初学者吗?

2 个答案:

答案 0 :(得分:0)

好吧,您缺少要初始化的成员名称。然后,您需要使用集合类型而不是单个UInfo实例来初始化它:

...
Name = ug.Name,
UInfo = new List<UInfo> 
{
    new UInfo
    {
        ...
    }
}

答案 1 :(得分:0)

您拥有ICollection<UInfo>作为属性,并且您在代码中使用new UInfo。应该是new List<UInfo>