1

假设我有这些表:

Fruits
 - FruitID       INT PK
 - FruitName     NVARCHAR(30)
 - FruitStatusID INT FK: Statuses

Statuses
 - StatusID      INT PK
 - StatusName    NVARCHAR(30)

在这些情况下,如何更新水果的名称及其在数据库中的状态?:

  1. 更新来自先前 L2E 调用的一块水果
  2. 给定一个对应于 FruitID 的整数(也就是说,我手头没有完整的 Fruit 对象开始)

VB或C#都可以,谢谢!

4

2 回答 2

2

这有效,但不是我所希望的:

int StatusID = 4; // Some ID
Fruit.FruidIDReference.EntityKey = 
    New EntityKey("MyEntities.Statuses", "StatusID", StatusID)

当然,有一种更简洁的方法可以做到这一点,它不需要硬编码字符串(如果我打错了会引入运行时异常)。

于 2009-05-05T19:54:36.447 回答
0

如果将 Fruit 对象传递给另一个方法,您可以:

  1. 将对上下文对象的引用与 Fruit 一起传递并调用 SaveChanges()

  2. 在下级方法中对 Fruit 对象进行编辑,并在调用方法中调用 SaveChanges()(如果要避免不必要的 DB 调用,可以检查它是否已被修改。)

代码:

//Change the name
FruitEntities fe = new FruitEntities();
Fruit f = fe.Friuts.First();
f.FruitName = "NewName";
fe.SaveChanges();

//Get a fruit by ID and change the status
//Statuses will need to be included as an Entity in your model with an association to Fruits
int Id = 2;
int newStatusID = 0;
FruitEntities fe = new FruitEntities();
Fruit f = (from x in fe.Fruits
           where x.FruitID == Id
           select x).First();
Status s = (from y in fe.Statuses
            where y.StatusID = newStatusID
            select y).First();
f.Status = s;
fe.SaveChanges();
于 2009-05-05T19:55:30.767 回答