一对多实体框架5首先使用代码进行更新

时间:2013-01-21 09:21:18

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

我想要更新一个实体而不更新其MANY实体列表。我使用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方法正在运行。但更新不会改变任何东西......

如果有人能告诉我我错过了什么,我会嗤之以鼻......

/ Thx J

2 个答案:

答案 0 :(得分:2)

使用以下标准,这项工作对我来说

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

        return objBuyerInformation;
    }

答案 1 :(得分:0)

if (b.Id== 0)
    {
        context.B.Add(b);
    }
else
   {
       context.B.Attach(b);
   }
   context.SaveChanges();