2011-11-13 10 views
3

私は、エンティティフレームワーク4.1コードファーストにマップしたいと思い、私のSQL ServerでEFコードでSqlサーバーのテキストフィールドタイプを最初にマップするにはどうすればよいですか?

1)テキストフィールドのタイプがあります。どうやってやるの?

2) POCOクラスで文字列変数を宣言すると、Sql Serverのnvarcharにマップされます。どのようにそれをvarcharにマップするのですか?私のデータは常に英語であり、多言語ではないと確信しています。事前に

感謝:)この

+1

は、あなただけの代わりに 'text''の 'のvarchar(MAX)'/'NVARCHAR(max)を使用することはできません/ 'ntext'?その後、問題は解消されます... –

+0

実際、text/ntextは廃止されており、 "最大"タイプに移行する必要があります。http://msdn.microsoft.com/en-us/library/ms187993.aspx –

答えて

10

用途:

public class Foo 
{ 
    [Column(TypeName = "ntext")] 
    [MaxLength] 
    public string TextProp {get; set;} 
} 

これは、SQL Serverのではなくnvarchar型でntext型の列を作成する必要があります。私はあなたが属性を持つ列のマッピングタイプを指定することができると信じて

+1

ntextは[SQL Server 2012で廃止予定](http://msdn.microsoft.com/en-us/library/ms143729.aspx)です。代わりに、varchar(max)またはnvarchar(max)を使用できます。 – sunshineDev

0

-

[Column(TypeName = "text")] 
public string TextField { get; set; } 

あなたはまた、varchar型のためにこれを行うことができますが、私が使用してから、EFのデフォルトスワップコードが含まれ、このブログの記事を見つけましたVARCHARのにnvarcharsが、私はポストに供給されたコードをテストしていません -

http://johncoder.com/Post/EFCodeFirstDisableUnicodeforallStringProperties

関連する問題