2017-12-10 30 views
0

私はこれらのほとんどをチェックアウトしているので、この質問は100回前のように聞かれています。彼らのどれもEF6で動作するようには思われません。EF6 SaveChanges()の後にID列の値を取得

単純に、EF6を使用してSQL Serverデータベースにレコードを書き込み、SaveChanges()を実行した後にIdentity列の値を復元したいとします。

は、ここに私の簡単なプログラムです:

 using (var ctx = new myEntities()) 
     { 
      ctx.TinyUrl_Url.Add(new TinyUrl_Url() 
      { 
       UrlValue = tinyUrl 
      }); 
      ctx.SaveChanges(); 
     } 

TinyUrl_Urlテーブルが2列ありますUrlValue、およびURLIDのアイデンティティPKを。 EF6を使用して新しい行を挿入した後、UrlIDの値を取得するにはどうすればよいですか?

ありがとうございます。

+0

var addedUrl = ctx.TinyUrl_Url.Add(...); SaveChangedの後にオブジェクトAddedUrlのIDがデータベースに挿入されたオブジェクトに与えられたIDで埋められた場合 –

答えて

0
int Id = ctx.UrlID; 

個人的に私はそれを行う、これは

context.Customers.Add(customer); 
context.SaveChanges();//this generates the Id for customer 
order.CustomerId = customer.Id;//finally I can set the Id 

を保存した後動作するはずway-。

+0

私のコードを翻訳する際にコンパイルエラーが発生するため、何かが不足しているはずです。ここにあなたのアイデアを使用しようと、私が持っているものです:(VAR CTX =新しいmyEntities()){ ctx.TinyUrl_Url.Add(新TinyUrl_Url() を{ UrlValue = TinyURLの })を使用して 。 ctx.SaveChanges(); long theID = TinyUrl_Url.Id; //そのようなプロパティはありません。Id: 私は行方不明を教えてください。 –

+0

最初にTinyUrlの新しいobjを作成し、そのプロパティにurlを追加してオブジェクトを渡し、@ BarryDysertをチェックします –

関連する問題