3

我是 Linq to Entity 的新手(事实上我是 Linq 的新手),我正在努力插入一行。

遵循了一些教程(其中没有一个似乎彼此一致或非常详细),我设法提出了以下代码,但我正在努力弄清楚如何使用我所拥有的......

数据库看起来像这样:

namespace IdeaGen.Data
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;

public partial class IdeaGenEntities : DbContext
{
    public IdeaGenEntities()
        : base("name=IdeaGenEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public DbSet<Idea> Ideas { get; set; }
    public DbSet<User> Users { get; set; }
}
}

我的模型如下所示:

public class NewIdea
{
    public int IdeaID { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public int UserID { get; set; }
}

(我还没有做用户模型)

我的控制器看起来像这样,但没有编译。

using (IdeaGenEntities ctx = new IdeaGenEntities())
        {
            var ideas = ctx.Ideas;
            NewIdea idea = new NewIdea();
            idea.Description = model.Description;
            idea.Title = model.Title;
            ctx.Ideas.Add(idea);
            ctx.SaveChanges();
        }

哦,我也按照教程之一使用它...

namespace IdeaGen.Data
{
public class DBBase
{
    private IdeaGenEntities _IdeaGenEntity = new IdeaGenEntities();

    public IdeaGenEntities IdeaGenEntity {get {return _IdeaGenEntity; } }
}
}

谁能指出我正确的方向?一旦我对自己在做什么有了基本的了解,我将能够解决剩下的问题,但是没有什么可做的,我对自己哪里出错了有点不知所措。

提前致谢

编辑:

感谢用户 user619656。我更新的控制器看起来像这样......

        IdeaGenEntities ctx = new IdeaGenEntities();
        Idea Idea = new Idea();
        Idea.Title = model.Title;
        Idea.Description = model.Description;
        ctx.Ideas.Add(Idea);
        ctx.SaveChanges();

谢谢你的帮助

4

1 回答 1

4

Ideas是 aDbSet<Idea>并且您只能将Idea对象添加到此集合中。

但在这儿

NewIdea idea = new NewIdea();
idea.Description = model.Description;
idea.Title = model.Title;
ctx.Ideas.Add(idea);

您正在向 Ideas 添加一个 NewIdea 对象,这就是您得到错误的地方。

于 2013-05-12T11:30:01.640 回答