首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MVC中将对象保存到数据库

在MVC中将对象保存到数据库
EN

Stack Overflow用户
提问于 2016-08-24 21:03:17
回答 1查看 310关注 0票数 1

我创建了一个代码优先项目,其中有一个post模型和一个person模型:

代码语言:javascript
运行
复制
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等,但在这种情况下,它不是一个值,它是一个对象,我如何插入数据?

例如代码:

代码语言:javascript
运行
复制
ViewBag.personlist = new SelectList(db.persons,"personId","name");

查看:

代码语言:javascript
运行
复制
@Html.DropDownListFor(model => model.sender, (SelectList)ViewBag.personlist, "select item")

在数据库中除了person_postId之外没有发送者项,因此dropdownlistfor send null值,我该如何处理?

EN

回答 1

Stack Overflow用户

发布于 2016-08-24 23:19:41

如果我理解正确的话,您需要将personID外键添加到您的post模型中:

代码语言:javascript
运行
复制
 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; }
}

按照现在的情况,您有一个导航属性,但是没有外键将帖子与一个人关联起来。下面这行代码:

代码语言:javascript
运行
复制
public virtual person sender { get; set; }

设置导航属性,但是它需要来自person模型的personID作为帖子模型中的一个字段,以便在此人和帖子之间有一个记录的链接。通过设置导航属性,实体框架将自动将personID标记为外键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39124125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档