none
Entity Framework中插入带标识的列。急~~~~~~~~~~~~ RRS feed

  • 问题

  • 数剧库中有张表有两个字段   id  name    (id为标识字段,主键,数据库处境)   用sql语句插入直接 insert into table (name) values ('name') 就可以了,但是在Entity Framwork中,生成的实体对象要求必需有标识字段,如果通过new一个对象创建后他的值会默认是0,插入后通过entity.SaveChanges()来保存数据时候会有提示主键冲突,请问该 如何解决?谢谢

    dqjk

    2012年2月15日 14:35

答案

  • 請檢查您建立Table的時候,是否有指定id這個欄位是自動成長(如下圖)。

    if exists (select * from sys.objects where type = 'U' and name = 'TestTable')
    	drop table TestTable
    go
    
    create table TestTable
    (
    	id int primary key identity
    	,name varchar(10)
    )
    go

    接著在EDMX中檢查物件的id屬性的StoreGeneratedPattern是否為identity(如下圖)。

    最後以下列程式碼新增資料至TestTable物件。

     using (NorthwindEntities context = new NorthwindEntities())
                {
                    TestTable tt = new TestTable();
                    tt.name = "terry";
                    context.AddToTestTable(tt);
                    Console.WriteLine(context.SaveChanges());
                }


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年2月15日 23:01