我创建了一个代码优先项目,其中有一个post模型和一个person模型:
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; }
}
我想创建一个帖子,其中存在发送者的个人信息,但person被定义为对象。如何在创建新帖子时将现有人员插入到帖子中?实际上,我只能通过从视图获取值来插入一些字段,如int、string等,但在这种情况下,它不是一个值,它是一个对象,我如何插入数据?
例如代码:
ViewBag.personlist = new SelectList(db.persons,"personId","name");
查看:
@Html.DropDownListFor(model => model.sender, (SelectList)ViewBag.personlist, "select item")
在数据库中除了person_postId之外没有发送者项,因此dropdownlistfor send null值,我该如何处理?
发布于 2016-08-24 15:19:41
如果我理解正确的话,您需要将personID外键添加到您的post模型中:
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; }
设置导航属性,但是它需要来自person模型的personID作为帖子模型中的一个字段,以便在此人和帖子之间有一个记录的链接。通过设置导航属性,实体框架将自动将personID标记为外键。
https://stackoverflow.com/questions/39124125
复制相似问题