4

次のように edmgen.exe ツールを使用しています。

"%windir%\Microsoft.NET\Framework\v4.0.30319\edmgen.exe" /mode:fullgeneration 
/c:"Data Source=%datasourceserver%; Initial Catalog=School; Integrated Security=SSPI" 
/project:School /entitycontainer:SchoolEntities /namespace:SchoolModel /language:CSharp

上記のコードには、ef モデルのビューが含まれています。以下のスクリーンショットのように、ビューを含めたくありません。これはどのように行うことができますか? ここに画像の説明を入力

4

1 に答える 1

7

edmgen を使用してこれを行う方法はないようです。リフレクターを使用して、edmgenSystem.Data.Entity.Design.dllがその作業を行うために使用していることがわかりました。次のようにプログラムで db ビューと関数を除外できます。

        var essg = new EntityStoreSchemaGenerator("System.Data.SqlClient", ConfigurationManager.ConnectionStrings["MST"].ConnectionString, "EFModel");
        essg.GenerateForeignKeyProperties = true;
        var filter1 = new EntityStoreSchemaFilterEntry(null, null, null, EntityStoreSchemaFilterObjectTypes.Table, EntityStoreSchemaFilterEffect.Allow);
        var filter2 = new EntityStoreSchemaFilterEntry(null, null, null, EntityStoreSchemaFilterObjectTypes.View, EntityStoreSchemaFilterEffect.Exclude);
        var filter3 = new EntityStoreSchemaFilterEntry(null, null, null, EntityStoreSchemaFilterObjectTypes.Function, EntityStoreSchemaFilterEffect.Exclude);
        var filters = new EntityStoreSchemaFilterEntry[] { filter1, filter2, filter3 };
        var errors1 = essg.GenerateStoreMetadata(filters);
于 2013-05-15T17:58:52.033 に答える