【问题标题】:One-To-Many Entity Framework 5 Update with code first一对多实体框架 5 更新代码优先
【发布时间】:2013-01-21 09:21:17
【问题描述】:

我有一个实体,我想更新而不更新它的许多实体列表。我使用 Code-First 但我无法让它工作...... 我正在使用 Ninject,除了我的更新之外,一切都在工作......

//实体

public class A
{
public int AId { get; set; }
public string Name { get; set; }
}


public class B
{
public int BId { get; set; }
public string Name { get; set; }
public virtual List<A>ListOfAs { get; set; }
}

//接口

private EFDbContext context = new EFDbContext();

public IQueryable<B> Bs
        {
            get { return context.B; }
        }

        public void SaveBs(B b)
    {
        if (b.Id== 0)
        {
            context.B.Add(b);
            context.SaveChanges();
        }

        *//here i wanna call: 
        context.Entity(b).State = EntityState.Modified;
        BUT VS dont let me... I probably missing something out...*

        context.SaveChanges();

当我只想将一个新对象添加到我的数据库时,Save 方法正在工作。但是更新不会改变任何东西......

如果有人能告诉我我错过了什么,我会很高兴......

/谢谢J

【问题讨论】:

    标签: c# asp.net-mvc-4 ef-code-first entity-framework-ctp5


    【解决方案1】:

    使用以下标准,这对我有用

    public BuyerInformation Update(BuyerInformation objBuyerInformation)
        {
            context.BuyerInformation.Attach(objBuyerInformation);
            context.Entry(objBuyerInformation).State = EntityState.Modified;
            context.SaveChanges();
    
            return objBuyerInformation;
        }
    

    【讨论】:

    • context.BuyerInformation.Attach(objBuyerInformation); 实际上并不需要。这有点奇怪,但没有它也能正常工作。我也很惊讶:)
    • 对此有任何解释。请描述一下。
    • 我不知道为什么。没有它它就可以工作。本教程也支持我:entityframeworktutorial.net/EntityFramework4.3/…
    【解决方案2】:
    if (b.Id== 0)
        {
            context.B.Add(b);
        }
    else
       {
           context.B.Attach(b);
       }
       context.SaveChanges();
    

    【讨论】:

    • 不,这不起作用...仍然没有更新。谢谢你的快速回答。
    • 我正在取回更新后的对象,但更新不会进入我的数据库。实体无法保存更改...
    • 没有。它只是没有更新......我有一个临时变量(在我看来)写出对象的新名称,x.Name 被更新为新名称......我不明白为什么我不能使用“EntityState.修改”。
    猜你喜欢
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2012-04-03
    相关资源
    最近更新 更多