2

あなたは前にこの質問を見たと確信しています。しかし、少なくとも私の検索では、次のような答えを求められるたびに:https ://stackoverflow.com/a/4017148/219838が表示されます。答えは完全に正しいですが、1つのシナリオをカバーしていません。DBAがブール値を表すためにtinyint列を使用することを選択した場合(彼によるとビット列はインデックス付けできません)、世界で何も彼にそれを変更させない場合はどうなりますか?

ブール値とバイト値の違いを理解しています。しかし、私は気にしません!私が知っておく必要があるのは、tinyint列をバイトではなくブール値にマップするための回避策はありますか?

http://www.saulovallory.com/how-to-map-byte-columns-to-bool-in-entityframeworkで説明されている醜いものを見つけましたが、流暢なマッピングでは機能しません。そして今、私はそうするものが必要です。

4

1 に答える 1

1

IUserTypeEF は、nHibernateのようなカスタム型コンバーターを構築していません。可能な回避策は、列を型の一致するプロパティにマップし、変換ロジックbyteを持つ別のプロパティを持つことです。boolこれはマップされたプロパティではないため、LINQ クエリでは使用できません。

public class MyClass
{
    public byte DatabaseColumnName { get; set; }

    [NotMapped]
    public bool DomainPropertyName 
    { 
       get
       {
            //conversion logic using DatabaseColumnName 
       }
       set
       {
           //conversion logic using DatabaseColumnName 
       }
}
于 2012-08-13T07:02:05.577 に答える