このブログの投稿: EF4 Code First Control Unicode and Decimal Precision、Scale with Attributes 、Dane Morgridgeは、データベースにさまざまなタイプの作成。
...そして、このかなりユニークなBTWを見つけました!!!
EF CTP5のコードファーストAPIを使用して、結果のデータベースにマネータイプフィールドを生成するにはどうすればよいですか?
私の英語が私の主な言語ではありません。
前もって感謝します。
たとえば、次のInvoiceクラスを考えてみます。
public class Invoice
{
public int InvoiceId { get; set; }
public decimal Amount { get; set; }
}
あなたは流れるようなAPIでそれを行うことができます:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Invoice>()
.Property(i => i.Amount)
.HasColumnType("Money");
}
または、データ注釈でそれを行うことができます:
public class Invoice
{
public int InvoiceId { get; set; }
[Column(TypeName="Money")]
public decimal Amount { get; set; }
}
using System.Data.Entity.ModelConfiguration.Configuration.Properties.Primitive;
public class MoneyAttribute : Attribute { }
public class MoneyAttributeConvention : AttributeConfigurationConvention<PropertyInfo, DecimalPropertyConfiguration, MoneyAttribute> {
public override void Apply(PropertyInfo memberInfo, DecimalPropertyConfiguration configuration, MoneyAttribute attribute) {
configuration.ColumnType = "money";
}
}
それからあなたはそのように使います
[Money]
public decimal Value { get; set; }