答えて

3

私は(私のような!)EFCF初心者のために、データベースの初期化子を作成する必要はないと思いますが、これは単なる仕事値としてDatabaseGeneratedOption.Computed

[DatabaseGenerated(DatabaseGeneratedOption.Computed)] 
public string Foo { get; set; } 
+0

ありがとうございます@エランガ! @Goran Obradovic氏がDELETE FROM [dbo]。[EdmMetadata] 'を使用するように指定したところ、[この回答](http://stackoverflow.com/a/6995622/1129461)も見つかりました。 私はまだこれらのプロシージャをテストすることができませんでしたが、あなたもedmmetadataを削除する必要があるかどうか教えてください。ありがとうございました! – Larry

+0

Eranga **が提案したように '[DatabaseGenerated(DatabaseGeneratedOption.Computed)] '属性を使用して作業を成功させ、解決策の最初のData Init(DataFeed)の間に新しい計算カラムを作成する** 。 THX @エランガ! – Larry

0

ないビューを使用せずに計算カラムを行うだろうかどうかはわかり、そしてあなたcannot use views in EF Code Firstyou can in Model & DB first though)。 EFはコードではなくSQLでいくつかの操作を実行しますが、探しているようには聞こえません。あなたが達成しようとしていることを詳しく説明できますか?

+0

Thx @ RyanR。たとえば、DataObjectを使用して計算カラムにアクセスしようとしています。すべてのフィールドがdbsetに配線されていれば、[私の質問](http://stackoverflow.com/q/9027150/1129461)で説明した「純粋なエンティティ」の問題は発生しません。 @Olegの提案に続いて、最良の方法は計算されたプロパティを直接db内に置くことだと思います。今のところ、これらのアノテーションをプロパティに置くことは適切な方向です: '[NotMapped] [DatabaseGenerated(DatabaseGeneratedOption.Computed)]' ... – Larry

+0

EFコードファーストでビューを使用してモデル化することはできません。 Code First DatabaseGenerationを使わなくても、それらを自分で生成することはできません。別の方法で作成する必要があります。 –

+0

@ScottStafford私はその仕事を見たいと思っています - あなたは例やあなたがリンクすることができるドキュメンテーションを持っていますか? – RyanR

0

DatabaseGenerated属性を使用します。

Model1 model = new Model1();//Model1 : DbContext 
model.Database.CreateIfNotExists(); 
model.Database.ExecuteSqlCommand("alter table Results drop column Total; alter table Results add Total AS (Arabic + English + Math + Science)"); 

完全回答チェックhereです。

関連する問題