C# 一对多实体框架5先用代码更新

C# 一对多实体框架5先用代码更新,c#,asp.net-mvc-4,ef-code-first,entity-framework-ctp5,C#,Asp.net Mvc 4,Ef Code First,Entity Framework Ctp5,我有一个实体,我想在不更新其多个实体列表的情况下更新它。我先用代码,但我不能让它工作。。。 我正在使用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 vir

我有一个实体,我想在不更新其多个实体列表的情况下更新它。我先用代码,但我不能让它工作。。。 我正在使用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; }
}
公共A类
{
公共int-AId{get;set;}
公共字符串名称{get;set;}
}
公共B级
{
公共整数BId{get;set;}
公共字符串名称{get;set;}
公共虚拟列表{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();
private EFDbContext context=new EFDbContext();
公共图书馆
{
获取{return context.B;}
}
公共无效存储库(B)
{
如果(b.Id==0)
{
上下文B.添加(B);
SaveChanges();
}
*//这里我想打电话:
context.Entity(b).State=EntityState.Modified;
但是VS不让我…我可能错过了一些东西*
SaveChanges();
当我只想向我的数据库添加一个新对象时,Save方法起作用。但是更新不会改变任何东西

如果有人能告诉我我错过了什么,我将不胜感激


/Thx J

使用以下标准,这对我来说是可行的

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

        return objBuyerInformation;
    }

不,这不起作用…仍然没有更新。Thx为您的快速回答tho。我得到更新的对象回来,但更新没有通过我的数据库。实体无法保存更改…不。它只是没有得到更新…我得到了一个临时变量(在我的视图中)这将写出对象的新名称,x.name将更新为新名称…我不明白为什么不能使用“EntityState.Modified”。
context.BuyerInformation.Attach(objBuyerInformation)
实际上是不需要的。这有点奇怪,但是没有它它也可以工作。我也很惊讶:)有什么解释吗。请描述一下。我不知道为什么。它没有它就可以工作。本教程也支持我:
public BuyerInformation Update(BuyerInformation objBuyerInformation)
    {
        context.BuyerInformation.Attach(objBuyerInformation);
        context.Entry(objBuyerInformation).State = EntityState.Modified;
        context.SaveChanges();

        return objBuyerInformation;
    }