这是我的错误信息The data types text and varchar are incompatible in the equal to operator.
我的代码是这样的
var result = db.Table.Where(x => x.columnA == "A").ToList();
我知道原因是 columnA
在数据库中的类型是文本,所以它们无法匹配
而且我无法更新数据库方案。
我可以使用 LINQ to SQL 来实现吗?
更新
这是我的 DAO
[Required]
[StringLength(10)]
public string MessageName { get; set; }
最佳答案
TEXT
列不支持等于运算符,即使在 SQL 中也是如此。
您必须这样做,以便您的查询转换为 LIKE
运算符,这可以通过 Contains
(LIKE '%str%'
), StartsWith
(LIKE '%str'
) 或 EndsWith
(LIKE '%str'
).
如果你需要严格的平等,这样的事情应该可行:
var result = db.Table.Where(x => x.columnA.StartsWith("A") &&
x.columnA.EndsWith("A")).ToList();
关于c# - LINQ 比较字符串和数据库列类型 'text',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37785566/