データベースの文字リテラルTおよびFをブール値として使用するレガシーなOracleデータベースで作業していますが、Entityプロパティに適切なboolen値を反映させたいインサートは重要ではありませんので、データベースだけを読まれるモデルは、それが結合され、この値を変換するWYがあるデータベースの文字列からbooleanプロパティへの変換Entity Framework 4.1
答えて
...
エンティティフレームワークは、基本的にデータベーステーブルのデータがどのように見えるかを示すオブジェクトを生成します。「連絡先」というテーブルがある場合は、「連絡先」というオブジェクトを取得します。インク、それは何かなどを生成して(私が間違っている可能性が)クラスは、部分として定義されている...
public partial class Contact {
string BoolReally {
get; set;
};
}
あなたは、このような新しいプロパティを追加...今
public partial class Contact {
bool MyBool get {
return (legacyValue == "T") ? true : false;
}
}
ますContactインスタンスを宣言するだけで、代わりに "MyBool"から値を取得できます。
...包む、拡張だ
はこのような何か...
public class MyContact {
public Contact Contact;
public bool MyBool {
get {
return Contact.BoolAsString;
}
}
}
似たものになるでしょう...ただ少し異なる:)
オブジェクトを消費する必要があります不可能です。あなたは、データベース表の列に文字列プロパティをマッピングして、マッピングされていないブール型プロパティを使用する必要があります:
public string MyStringProperty { get; set; }
[NotMapped]
public bool MyBoolProperty
{
get { return MyStringProperty == "T"; }
set { MyStringProperty = value ? "T" : "F"; }
}
私は流暢なAPIを使ってプロパティマップでこれを行う方法があれば、データベースへのマッピングに無知なモデルPOCOを維持したいと本当に思っていました –
@Chris:ADO.NETチームに教えてください。彼らは単純な型マッピングの必要性を無視しています。 –
ya ive気づいた –
- 1. 文字列 "Y"から "Boolean"への変換が無効です
- 2. 文字列変換の配列からデータベースへの置換
- 3. .NET Compact Frameworkの文字列からDateTimeへの変換
- 4. データベースの更新 - MVC3、Entity framework 4.1
- 5. Entity Framework 4.1のデータリアルタイム
- 6. は、Entity Frameworkの4.1
- 7. データベースからSecureStringへの文字列の変換
- 8. 文字列からintへの変換
- 9. 文字列からUnicodeへの変換
- 10. 文字列からラムダへの変換
- 11. Java:inetaddressから文字列への変換
- 12. 文字列からバイトへの変換
- 13. バイトから文字列への変換
- 14. 文字列配列から文字列への変換Swift
- 15. Entity Framework 4.1 - 非キー列間の関係
- 16. C++、文字列から文字配列への変換
- 17. spring mvc form bean文字列から文字列への変換
- 18. 16進文字列から16進文字列への変換
- 19. Entity Framework 4.1は、データベースからレコードを取得できません。
- 20. Entity Framework 4.1とSQLite
- 21. Entity Framework 4.1 DatabaseGeneratedOption.Identityパフォーマンス
- 22. Entity Framework 4.1パフォーマンスの問題
- 23. Entity Framework 4.1のアンインストールJune CTP
- 24. Entity Framework 4.1のNotMappedクラスからEntityクラスを派生します。
- 25. Entity FrameworkメタデータLINQ(C#からVB.NETへの変換)
- 26. モデルからのEntity Frameworkデータベース
- 27. 既存のデータベースへのEntity Frameworkからマスタへのアクセスなし
- 28. Entity Framework 4.1変換による外部キーマッピング
- 29. Entity Frameworkのユニークキーの文字列
- 30. Entity Frameworkの接続文字列のエラー
これの欠点は、 'MyBool'プロパティはEF以来、LINQクエリで使用することができないということですそのようなクエリをSQLに変換することはできません。 – Steven
古い文字列プロパティのlinqクエリで同じロジックを使用することは何も止めません。しかし、厄介な回避策のビット。私の理想はDBの計算フィールドを作成するので、Linqで使用できるPOCO /エンティティに変換されたビット列が得られます。 – War
またはちょうどいくつかのSQL更新(テーブルに1、データをビット列にコピーするために1)で列を変換します。 – War