簡體   English   中英

如何強制Entity Framework為CHAR,NCHAR,VARCHAR(1)和NVARCHAR(1)列使用字符串而不是char?

[英]How can you force Entity Framework to use string instead of char for CHAR, NCHAR, VARCHAR(1) and NVARCHAR(1) columns?

我們有一個數據庫表,當前有一個VARCHAR(1)列。

我們有時會對此表進行更改,這需要我們重新生成DBML文件中的對象。 我們的相應代碼希望將此值引用為字符串,但是LINQ-to-SQL始終假定它是可為空的char。 為了解決這個問題,我們必須在DBML設計器中手動將列設置為字符串。 我想防止我們的開發人員在這些類型的字段中意外使用char而不是string。

有沒有一種方法可以強制實體框架對所有CHAR/NCHAR/VARCHAR(1)/NVARCHAR(1)字段采用字符串?

如果沒有辦法做到這一點,我們可能會將列更改為VARCHAR(2)或類似的內容。 無論我們決定如何,我們都會傳播到多個表,因為多個表正在使用這種類型的列定義。 我們必須更改的唯一列數是阻止我們目前全面實施此列的原因。

編輯:將“實體框架”更改為“ LINQ-to-SQL”

我有一個類似的問題。 我通過使用POCO T4模板並修改模板以發出附加屬性來解決該問題,該附加屬性在設置原始屬性之前進行了一些檢查。 T4模板可以使用命名約定來標識需要此字段的字段。 這是我博客的鏈接,我在其中詳細介紹了它的工作原理http://nigelfindlater.blogspot.com/2010/04/implementation-of-custom-types-within.html

我想一種替代方法可能是創建一個局部類,以類似的方式添加附加屬性。

我希望這有幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM