Linq to Entity - 插入一条记录

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();

感谢您的帮助。

编译错误是什么?您没有展示'model'声明的位置。 - devdigital
1个回答

4

Ideas 是一个 DbSet<Idea>,你只能向这个集合中添加 Idea 对象。

但是在这里:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接