据我所知,这是一个非常经典的错误。我试图理解为什么会发生这种情况,但我不明白为什么它会在我的代码中发生.. 我有两个类,用户:
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();
确切的例外是:“CodeFirstNewDatabaseSample.User.Organizations.get返回null。”
答案 0 :(得分:3)
您需要将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);
击> <击> 撞击>