我需要执行这种类型的命令`使用实体框架插入表(列)值(N'текст')
这是我的代码
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 :(得分:2)
如果您使用Model-First
或edmx
,则应修改Max Length
。在模型上设置这些属性将不适合您。
在设计器中打开您的edmx,然后在字段的属性中选择您的字段,将Max
设置为Unicode
,将true
设置为Update Model from Database ...
。
您也可以从edmx中删除该实体,然后右键单击并选择ntext
并再次添加实体,这样如果数据库中的字段为transform.rotation = Quaternion.FromToRotation (Vector3(0, 0, 0), Vector3(0, 0, 270));
,则会对该字段进行设置在edmx。