我正在使用舊數據庫,該數據庫在數據庫中爲其布爾值使用字符文字T和F,但是我希望實體屬性反映適當的值有沒有WY當該模型結合它該值轉換爲只讀數據庫,以便插入不重要將數據庫中的字符串轉換爲布爾型屬性實體框架4.1
回答
我建議包起來或延長髮電類型添加這種功能...
實體框架將生成基本上與數據庫表中的數據相匹配的對象,因此如果您有一個名爲「Contacts」的表,您將獲得一個名爲「Contacts」的對象,I th墨(雖然我可能是錯的)的類現在,當你定義爲局部的,因此產生類似...
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"; }
}
該死的,我真的希望保持模型POCO對映射到數據庫的無知將是非常好的,如果有一種方法可以在流利的api中執行此操作 –
@Chris:告訴ADO.NET團隊。他們仍然忽略簡單類型映射的需求。 –
你注意到了 –
- 1. 實體框架將數字(1)轉換爲布爾幫助?
- 2. 實體框架4.1 - 交換數據庫
- 3. 實體框架4.1:庫與「DefaultOrder屬性」
- 4. 將實體框架模型導航屬性轉換爲DTOs
- 5. 將實體框架屬性轉換爲依賴項屬性
- 6. 在實體框架中將模型屬性設置爲布爾值
- 7. 使用實體框架將字符串轉換爲DateTime
- 8. 將字符串轉換爲布爾
- 9. 將字符串轉換爲布爾值
- 10. 實體框架4.1 InverseProperty屬性和ForeignKey
- 11. 無法將類型字符串轉換爲布爾型
- 12. 實體框架+優勢數據庫:轉換可爲空數字類型
- 13. 轉換日期時間爲字符串的實體框架
- 14. 實體框架的DateTime轉換爲字符串
- 15. 使用ColdFusion 9的ORM,如何創建一個將數據庫字符串轉換爲布爾值的屬性?
- 16. 將字符串轉換爲布爾值並檢查布爾值
- 17. 不能將字符串轉換爲布爾,但沒有布爾?
- 18. 實體框架:調用SaveChanges後字符串屬性爲空
- 19. 更改實體框架4.1中的連接字符串POCO
- 20. 獲取實體的屬性實體框架4.1
- 21. 實體框架模型與索引屬性數據庫
- 22. 將字符串轉換爲linq中的int到大數據庫上的實體
- 23. 將字符串屬性轉換爲字符串數組
- 24. 將字符串轉換爲html屬性
- 25. 實體框架4/Linq:如何將DateTime轉換爲查詢中的字符串?
- 26. Ruby:如何將字符串轉換爲布爾型
- 27. DataColumn.Expression屬性。轉換當前列的布爾值的字符串
- 28. 將字符串轉換成布爾
- 29. 將布爾型屬性保存爲NSNumber對象的CoreData實體
- 30. 字符串到布爾轉換行爲
下行的,這是該'MyBool'屬性不能在LINQ查詢使用,因爲EF不能將這樣的查詢翻譯成SQL。 – Steven
雖然在舊字符串屬性的linq查詢中沒有任何東西阻止您使用相同的邏輯。儘管這是一個討厭的解決方法。我的理想是在數據庫中創建一個計算字段,這樣你就可以將一個列轉換爲可以在linq中使用的POCO /實體。 – War
或者只是用一些SQL更新(表中的1,將數據複製到一個比特列中)將列轉換爲 – War