Entity Framework
データベースの最初のモデル生成
サーチ…
データベースからモデルを生成する
Visual Studio Solution Explorerに移動し、 Projectをクリックしてモデルを追加します 。 右マウス 。 ADO.NET Entity Data Model選択する
次に、選択したGenerate from databaseし、クリックしNextクリックし、次のウィンドウにNew Connection...あなたは(だろうからモデルを生成するデータベースへとポイントMSSQL 、 MySQLか、 Oracle )
これを行った後、 Test Connectionクリックして接続が正しく設定されているかどうかを確認します(ここで失敗した場合は、これ以上進みません)。
[ Nextをクリックし、必要なオプション(エンティティ名を生成するスタイルや外部キーを追加するスタイルなど)を選択します。
もう一度[ Nextクリックします。この時点で、データベースからモデルを生成する必要があります。
生成されたモデルにデータ注釈を追加する
Entity Framework 5以降で使用されるT4コード生成戦略では、データ注釈属性はデフォルトでは含まれていません。特定のプロパティの上にすべてのモデル再生、オープンテンプレートファイルは(とEDMXに含まれるデータ注釈を含めるには.tt拡張子)、その後追加using下の文をUsingDirectives方法以下のように:
foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>
(itemCollection))
{
fileManager.StartNewFile(entity.Name + ".cs");
BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#>
using System.ComponentModel.DataAnnotations; // --> add this line
たとえば、主キーのプロパティを示すKeyAttributeがテンプレートに含まKeyAttributeているとします。モデルの再生成中にKeyAttribute自動的に挿入するには、以下のようにcodeStringGenerator.Propertyを含むコードの一部を探します。
var simpleProperties = typeMapper.GetSimpleProperties(entity);
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}
次に、if-conditionを挿入してキーのプロパティを確認します。
var simpleProperties = typeMapper.GetSimpleProperties(entity);
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
if (ef.IsKey(edmProperty)) {
#> [Key]
<# }
#>
<#=codeStringGenerator.Property(edmProperty)#>
<#
}
}
上記の変更を適用すると、生成されたすべてのモデルクラスは、データベースからモデルを更新した後に、主キープロパティにKeyAttributeを持ちます。
前
using System;
public class Example
{
public int Id { get; set; }
public string Name { get; set; }
}
後
using System;
using System.ComponentModel.DataAnnotations;
public class Example
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}

