0

我正在尝试将具有一对多关系的模型插入数据库:

我有两个模型:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Surname { get; set; }     

    public virtual Country Country { get; set; }
}

public class Country
{
    public int Id { get; set; }
    public string CountryName { get; set; }

    public virtual ICollection<User> Users { get; set; }
}

User user = new User()
{
     Name = model.Name,
     Surname = model.Surname,  
     Country = new Country { Id = 1 }
};

当我尝试将其插入数据库时​​出现异常

一个或多个实体的验证失败。

CountryName字段是必需的(CoutryName数据库中的列是必需的)

我不希望每次调用数据库来获取完整的 Country 对象,有什么想法吗?

4

2 回答 2

3

而不是实例化一个新的国家,做这样的事情:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Surname { get; set; }     
    public int CountryId { get; set; }

    [ForeignKey("CountryId")]
    public virtual Country Country { get; set; }
}

public class Country
{
    public int Id { get; set; }
    public string CountryName { get; set; }

    public virtual ICollection<User> Users { get; set; }
}

User user = new User()
{
     Name = model.Name,
     Surname = model.Surname,  
     CountryId = 1;
};

这明确设置了用户的 CountryID。

于 2012-12-15T15:56:51.837 回答
0

您应该使用“FK 关联”而不是“独立关联”这是创建关于它的文章:http: //blogs.msdn.com/b/efdesign/archive/2009/03/16/foreign-keys-in-the-entity -framework.aspx

于 2012-12-23T17:24:54.667 回答