私は、データベースの最初のアプローチを使用しています。(正確に同じことになって)別のテーブルから
マイ先テーブルは、第RemoveRange()を使用して切り捨てられ、その後、データは他のすべてのカラムのデータが正しくコピーされDestination.Tables.AddRange(Source.Tables);
を使用してソース・テーブルから転送されます。しかし、「Id」フィールドは大きな番号から入力されます。私はIdフィールドを同じにしたい。だからこそ、アイデンティティの挿入を設定しようとしているのです。
私はこのチュートリアルに従うことを試みたが、関数内 http://blog.robertobonini.com/2014/10/09/entity-framework-with-identity-insert/
table.cs
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
using (var Destination = new DestinationEntities(NewconnDestination))
{
using (var Source = new SourceEntities(NewconnSource))
{
Source.Configuration.LazyLoadingEnabled = false;
Source.Configuration.ProxyCreationEnabled = false;
Destination.Database.ExecuteSqlCommand(@"SET IDENTITY_INSERT dbo.[Table] ON");
Destination.Tables.AddRange(Source.Tables);
SaveChanges(Destination);
Destination.Database.ExecuteSqlCommand(@"SET IDENTITY_INSERT dbo.[Table] OFF");
scope.Complete();
}
} }
これらは私のしている私のために動作しません。テーブルの列プロパティ Id properties
何か他のもの必要がありますか?またはこれを達成するための他の方法?
これは問題です。両方のテーブルで同じID列が必要です。 ソース表 ID column 宛先表 ID column
.NETバージョン:4.5エンティティフレームワーク:チュートリアル6.1.3
エラーは何が起こったのか? –
問題を適切に記述してください。 –
'それは私にとってはうまくいかないのですか? 'あなたはどんなエラーを出していますか? –