0

我是 Entity Framework 的新手,我的第一段代码似乎已经不正确,或者至少不是我所期望的。

我已经从数据库中生成了我的实体对象。我的一张桌子是WebUser。所以我知道有一个实体对象WebUser。数据库使用一个Identity名为的列,该列WebUserID也是表的主键。

但是,该CreateWebUser方法具有以下签名...

public static WebUser CreateWebUser(global::System.Int32 webUserID, 
                                    global::System.String userName, 
                                    global::System.String password, 
                                    global::System.String emailAddress)

为什么它要求WebUserID? 这不能插入到数据库中。

4

2 回答 2

1

您可以设置webUserID或保持默认。但是当您想添加两个或更多 WebUser 时,webUserID可用于设置项目的顺序。

db.CreateWebUser(2,"The Second Recored","2","2");
db.CreateWebUser(1,"The First Recored","1","1");
db.SaveChanges();

哪个会先插入数据库?答案是哪个webUserID较小的会先插入数据库。

于 2012-05-25T13:43:35.097 回答
1

手册中所述,您应将 ID 设置为 0。它会在您调用时由 EF 更新Context.SaveChanges()

您也可以使用Context.CreateObject<WebUser>()or (按照医生的建议)var newUser = new WebUser()创建一个新实体并在设置其他属性时省略 ID。

于 2012-05-25T13:36:32.247 回答