【问题标题】:How update string field with length of 300 with entity如何使用实体更新长度为 300 的字符串字段
【发布时间】:2016-11-23 12:43:23
【问题描述】:

我想更新一张表的一个字段,问题是当它大于 128 个字符时,SQL 不允许我更新。

以 ... 开头的标识符太长。最大长度为 128

奇怪的是我在 entity 中添加了 300 个字符,但我无法更新它。

这是我的代码:

var  objcompany = _entities.Companies.FirstOrDefault(o => o.Username == user.Trim()); 
objcompany.T="iii4ca4238a0b923820dcnyeytkekhwertgn56nj67fsjk7eukuyc557654junbi76in67iomoor7m6ri6oi68g4yvmo8709a6f75djyksddu849bSarzindfgdgfdAmita3h65utyjein7gfjy6ybhuh6huhuun676grth6jksc0wjzbc32wbc8w3fiofdj8eufghdjn79yjetyjtey";

 _entities.SaveChanges();

【问题讨论】:

  • 检查数据库表中该列的大小
  • @AnkitkumarBhatt 是 varchar(400),我也说过我可以用实体插入新记录,但我不能更新它
  • 什么是确切的按摩像以...开头的标识符然后呢?
  • @AnkitkumarBhatt 就像我发送的一样,OI 想要的只是更新一个实体和长度 >300 的字段

标签: c# sql sql-server entity-framework entity


【解决方案1】:

基于您的代码。在保存到数据库之前更新您的模型

_entities.Entry(objcompany).State = EntityState.Modified;//Add this Line 
_entities.SaveChanges();

【讨论】:

  • 它没有更新也没有显示错误,就像什么都没发生一样:|
【解决方案2】:

代码优先:检查模型变量并更改 MaxLength 设置
首先数据库:检查db中的列并更改长度,然后在VS中重新加载模型

【讨论】:

  • 我再次检查了所有内容,但没有任何变化:| ,它是插入新数据,但它不允许实体更新
猜你喜欢
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-07-22
相关资源
最近更新 更多