我创建了一个代码第一个项目,其中有一个帖子模型和人员模型:
public class post
{
[Key]
public int postId { get; set; }
public string title { get; set; }
public virtual person sender { get; set; }
}
public class person
{
[Key]
public int personId { get; set; }
public string name { get; set; }
}
我想创建一个帖子,其中存在发件人信息但人被定义为对象。如何在创建新帖子时将现有人员插入帖子?实际上我只能通过从视图中获取值来插入一些字段,如int,string等,但在这种情况下,它不是一个值,它是一个对象,如何插入数据?
e.g。 代码:
ViewBag.personlist = new SelectList(db.persons,"personId","name");
视图:
@Html.DropDownListFor(model => model.sender, (SelectList)ViewBag.personlist, "select item")
在数据库中没有发件人项而是person_postId,因为这个原因dropdownlist为send NULL值,我该如何处理呢?
答案 0 :(得分:0)
如果我理解你想要什么,你需要将personID外键添加到你的帖子模型中:
public class post
{
[Key]
public int postId { get; set; }
public int personId { get; set; }
public string title { get; set; }
public virtual person sender { get; set; }
}
目前,您拥有导航属性,但没有外键可以将帖子与人员关联起来。以下一行:
public virtual person sender { get; set; }
设置您的导航属性,但是需要人员模型中的personID成为帖子模型中的字段,以便在该人和帖子之间存在记录的链接。实体框架将通过设置导航属性自动将personID标记为外键。