据我所知,这是一个非常经典的错误。我试图确切地理解为什么会发生这种情况,但是我不明白为什么它在我的代码中发生。我有两个类,用户:
public class User
{
[Key]
public string Username { get; set; }
public string DisplayName { get; set; }
public List<Organization> Organizations { get; set; }
}
和组织:
public class Organization
{
public int OrganizationId { get; set; }
public string OrganizationName { get; set; }
}
在我的主要程序中,我的目标是创建一个新的组织,并使用用户提供的名称。然后,我想从用户那里获得用户名。然后,首先要将组织添加到此用户。据我所知,我的main((正在处理一个对象的实例吗?主要看起来像这样: Console.Write("输入组织名称:"(; var orgname = console.readline((;
var org = new Organization{OrganizationName = orgName};
db.Organizations.Add(org);
db.SaveChanges();
Console.WriteLine("Enter username: ");
var userName = Console.ReadLine();
var user = new User {Username = userName};
user.Organizations.Add(org); //I get the exception on this line
db.Users.Add(user);
db.SaveChanges();
确切的例外是:" codefirstnewdatabasemample.user.user.organizations.get返回null。"
您需要将Organizations
属性初始化为空列表:
public class User
{
[Key]
public string Username { get; set; }
public string DisplayName { get; set; }
public List<Organization> Organizations { get; set; } = new List<Organization>();
}
不建议使用以下内容,因为它很容易出现您存在的问题:或:
var user = new User { Username = userName };
user.Organizations = new List<Organization>();
user.Organizations.Add(org);