2015-11-01 116 views
2

我需要實體框架執行此類型的命令'插入表(列)值(N'текст')如何將實體框架插入ntext?

這裏我的代碼

public ActionResult PDFGeneration(string format) 
{ 
     var myFont = Path.Combine(Server.MapPath("~/App_Data/Font/"), "font.ttf"); 
     Rectangle pgeSize = new Rectangle(595, 792); 

     Document pdfDoc = new Document(PageSize.A4, 50, 50, 50, 0f); 
     PdfWriter pdfwriter = PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 

     pdfDoc.Open(); 

     BaseFont bfR = BaseFont.CreateFont(myFont ,BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 

     BaseColor clrBlack = new BaseColor(0, 0, 0); 
     Font fntHead = new Font(bfR, 12, Font.NORMAL, clrBlack); 

     //pdfDoc.Add(new Paragraph("Літера ї є я ь", fntHead)); 


     using (MedicalDictionaryEntities mde = new MedicalDictionaryEntities()) 
     { 

      mde.Database.Connection.Open(); 
      var listTUa = from x in mde.TranslationUA select x; 
      foreach (TranslationUA tua in listTUa) 
      { 
       StringBuilder builder = new StringBuilder(); 
       builder.Append(tua.Word).Append(" - "); 

       foreach(TranslationEN ten in tua.TranslationEN) 
       { 
        builder.Append(ten.Word).Append(", "); 
       } 

       pdfDoc.Add(new Paragraph(builder.ToString(),fntHead)); 
      } 
     } 

     pdfDoc.Close(); 
     Response.Write(pdfDoc); 
     Response.ContentType = "application/pdf"; 
     Response.AddHeader("content-disposition", "attachment;filename=Generated.pdf"); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Write(pdfDoc); 
     Response.End(); 

     return View("Index"); 
    } 

我的作品,但我得到???????代替西裏爾字母。

我添加這些列到實體模型,但它並沒有幫助

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

我試圖在SQL Server中執行Insert table(column) values (N'текст')和它的工作。

所以我的問題是:如何使用代碼和EF執行這種類型的命令?

+0

你使用實體框架「Code-First」還是使用'edmx'? –

+0

我正在使用edmx – user3210023

+0

我爲您發佈了一個答案。 –

回答

2

如果您使用Database-FirstModel-First,則應編輯您的edmx。在模型上設置這些屬性不適用於您。

在設計師打開EDMX,然後選擇你的領域,在該領域,集Max Length的性能MaxUnicodetrue

您也可以從您的edmx中刪除該實體,然後右鍵單擊並選擇Update Model from Database ...,然後再次添加該實體,這種方式如果數據庫中的字段爲ntext,則將對edmx中的字段進行設置。

+0

謝謝,替換實體幫助。 – user3210023

+0

歡迎您:) –