ほぼ一日中、SQL Server CE 4.0 で苦労しています。新しいレコード (エンティティ) をデータベースに保存しようとすると、このエラーが発生します。
最初のプレビュー - NuGet 経由で SQL Server CE 4.0 をインストールし、プロジェクト用のデータベースを作成しました。次に、Entity Framework モデル レイヤーを作成し、それを使い始めました。
このエラーが発生すると、内部例外は次のようになります。
列は変更できません。[ 列名 = Id ]
少し調べてみたところ、Id
プロパティの設定が原因である可能性があることがわかったので、次のように変更しました。
テスト目的で手動で挿入した 17 のレコードが既にありますが、これが問題を引き起こす可能性があるとは思えません。
だから私がやろうとしていることはこれです:
public override void Save()
{
using (RalBaseEntities ctx = new RalBaseEntities())
{
System.Data.Entity.DbSet<MainInfo> mainInfoEntity = ctx.Set<MainInfo>();
MainInfo entity = new MainInfo();
entity.Manager = txtManager.Text;
entity.Broker = txtBroker.Text;
mainInfoEntity.Add(entity);
ctx.SaveChanges();
}
}
そのため、メソッドを実行しようとすると、Save()
上記のエラーが発生します。以前のバージョンでは手動で作成する必要があると書きましたがid
、v. 4.0 で修正され、ここに画像として表示されている設定から判断すると、自動生成された新しいレコードを取得するだけの理由はわかりません。ユニークId
。
私が得た言葉Update
はDbUpdate Exception
私を少し心配しています。間違った方法でデータを保存しようとしているのかもしれませんが、グーグル検索に多くの時間を費やしており、正しい方法のようです。