我的模型类是:

public class User
{
    public User()
    {
        Polls = new List<Poll>();
    }
    public int Id { get; set; }
    public String FirstName { get; set; }
    public String LastName { get; set; }

    ICollection<Poll> Polls { get; set; }

}

public class Poll
{
    public int Id { get; set; }
    public int PositiveCount { get; set; }
    public int NegativeCount { get; set; }
    public String Description { get; set; }
    public User User { get; set; }

}

public class PollsContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Poll> Polls { get; set; }
}

EF为民意调查表创建了一个表User_Id列。 在民意调查的“创建”视图中,我也想指定新民意调查所属的UserId,但是intellisense显示无法访问model.UserId,存在model.User.Id,这不允许我为其创建民意调查现有用户,而是使用新ID创建新用户,并且未创建关联。

<div class="editor-label">
        @Html.LabelFor(model => model.User.Id)
</div>
<div class="editor-field">
        @Html.EditorFor(model => model.User.Id)
        @Html.ValidationMessageFor(model => model.User.Id)
</div>

那么,为现有用户创建新投票的正确方法是什么?

===============>>#1 票数:0

我认为您的Poll类应如下所示:

public class Poll
{
    public int Id { get; set; }
    public int PositiveCount { get; set; }
    public int NegativeCount { get; set; }
    public String Description { get; set; }
    public int User_Id { get; set; }
    public User User { get; set; }

}

如果PollUser_Id有一列,则您的模型也应具有此列。 然后,您可以仅将User_Id分配给“ Poll ,实体框架将负责正确链接到正确的User对象。

此外,请考虑使您的关联属性(Poll.User和User.Polls)成为虚拟的,以便使用实体框架的延迟加载机制。 看到这个

===============>>#2 票数:0 已采纳

public class Poll
{
    public int Id { get; set; }
    public int PositiveCount { get; set; }
    public int NegativeCount { get; set; }
    public String Description { get; set; }
    public int UserId { get; set; }
    public User User { get; set; }
}

  ask by mishap translate from so

未解决问题?本站智能推荐:

1回复

Razor / MVC 3实体框架有关主键的错误

我正在将VS 2010与Razor / MVC 3一起使用,以创建一个表单,其中用户1使用RequestQueue Model(这只是一个队列表)将信息提交到数据库。 然后,用户2拉出该信息,批准它,然后数据通过DbRequestForm模型发送到主数据库。 但是,此模型包含几个子模型(Da
1回复

ASP.NET MVC 3:添加控制器时自动生成视图(无实体框架)

我正在尝试学习MVC。 添加控制器时,我想自动生成所需的视图代码。 如果我选择“使用实体框架具有读/写动作和视图的控制器”选项,则可以这样做。 但是我没有使用实体框架。 在不使用实体框架的情况下如何实现类似的行为? 为什么不使用Entity Framework时无法自动生成视图?
1回复

在MVC创建视图上保存多对多关系数据

在保存创建视图的结果时,多对多关系存在一些问题。 我想为一个新的用户配置文件创建一个页面,该页面具有一个清单,可让他们选择课程(多对多关系)。 我的视图从“ Courses数据库中获取记录,并通过复选框显示所有记录。 一旦用户发布的数据,我想更新我userprofile模型,也是c
1回复

MVC + EF Code First多对多关系:使用复选框创建视图

我是MVC + EF Code First的新手,对于很多关系都有一些疑问。 我创建了两个具有多对多关系的表(userprofile和courses)。 听起来很简单,但对我来说非常复杂: 我希望看到“userprofile”的“创建”视图,其中包含每个“课程”现有选项的复选框,并
1回复

如何使用MVC3 ASP.NET 4.5和EF6根据实体属性注释获取TextBoxFor

我正在使用MVC3,ASP.NET 4.5,EF6,SQL Server 2008,C#和Razor。 我已经使用EF6创建了POCO Entity类作为数据接口。 从表单保存后,我想将十进制(20,4)属性四舍五入。 目前,前5位小数与前4位小数无关,即不进行四舍五入 我得
2回复

使用实体框架(.edmx模型)和Razor视图创建MVC3的下拉列表&&将数据库记录插入多个表

在阅读了有关如何使用Razor Views在MVC 3中创建DropDown列表的100篇文章后,我找不到适合我的情况。 情况:我最终尝试创建一个将员工添加到数据库的视图。 这是我正在使用的.EDMX模型的图像(create()将使用的表。): 目标: 创建一个Em
1回复

有关系的实体的JQgrid / Entity Framework问题

我有一个与另一个实体有关系的实体。 我能够搜索主要实体中的列,并包括来自关系实体的列。 但是我需要能够过滤不在关系实体中的列上的列表(搜索)。 例如 发票实体包含一个customerId属性,并且与包含customerName属性的客户实体相关 我需要能够通过custome
2回复

在实体框架的where子句中使用“in”运算符

我希望所有产品都在当前类别下可用,包括所有子类别。 我的代码是这样的: categoryByProductID =所有子类别, ? =我如何使用toCheck[]数组 或使用预定义值检查CategoryID任何其他解决方案! 任何帮助明显......
2回复

MVC,实体框架从多个模型中选择数据

在ASP.NET MVC3 Razor项目中,我有2个模型 Post.Author字段链接到Author.Id字段 在视图中,我需要显示列表 如何显示(来自)两个模型的联接信息? 注意:我想我需要使用ViewModel并将视图与IEnumerable List绑定,但
2回复

使用LINQ将2表联接到实体

我有两个表,分别用于“用户”和“歌曲”。 我需要在UserID列上同时加入它们,并向视图返回一个列表。 我尝试编写匿名类型,但遇到以下错误: “ LINQ to Entities仅支持无参数的构造函数和初始化程序。” 如何加入并返回列表? 我尝试在此处实现这样的方法: