C# SQLQuery未捕获泛型类型字段的CRLF
我有以下代码(简化) 并确保数据具有CRLF组合。 我注意到结构是varchar而不是nvarchar 我的应用程序是Winforms 我尝试在Ubuntu和windows上运行SQL Express [更新]C# SQLQuery未捕获泛型类型字段的CRLF,c#,sql-server,entity-framework-6,xaf,C#,Sql Server,Entity Framework 6,Xaf,我有以下代码(简化) 并确保数据具有CRLF组合。 我注意到结构是varchar而不是nvarchar 我的应用程序是Winforms 我尝试在Ubuntu和windows上运行SQL Express [更新] 总是学习是正确的。英孚似乎正在剥离车厢返回。 我更新了业务对象类以显示。 当返回I记录时,问题不在sql中 我还添加了xaf作为标记,因为我正在使用它,尽管很难看出它是如何涉及的 无论#temp描述是varchar还是nvarchar,都会出现此问题 无论其他表中的字段是varchar还
总是学习是正确的。英孚似乎正在剥离车厢返回。 我更新了业务对象类以显示。 当返回I记录时,问题不在sql中 我还添加了xaf作为标记,因为我正在使用它,尽管很难看出它是如何涉及的 无论#temp描述是varchar还是nvarchar,都会出现此问题
无论其他表中的字段是varchar还是nvarchar,都会出现此问题是否100%确定数据包含这些字符?是否在Linux或macOS上运行此操作?EF6是否可能通过将
\r\n
序列转换为\n
序列来“帮助”您?(我没想到会这样,但谁知道呢?)谢谢你。我更新了问题。英孚似乎在“帮助”
private List<T> GetList<T>( )
where T : MyResult, new()
{
var db = new MyDbContext();
var sql = @$"
SET NOCOUNT ON;
create table #temp ( Description nvarchar(800) )
insert into #temp (Description) select Description from SomeOtherTable
select description from #temp
where charindex(char(13),description) > 0 and
charindex(char(10),description) > 0
"
return db.Database.SqlQuery<T>(sql).ToList();
}
public override IEnumerable<NonPersistentObjectBase> MyGetData()
{
var t = GetType();
var o = Activator.CreateInstance(t) as MyRec;
return o.GetList<MyResult>(t).Cast<NonPersistentObjectBase>().ToList();
}
public class MyResult : NonPersistentObjectBase {
[ModelDefault("RowCount", "5")]
public string Description { get; set; }
public bool HasCrLf => Description.Contains( "\r\n");
public bool HasCr => Description.Contains("\r"); // returns false
public bool HasLf => Description.Contains("\n"); // returns true
}
select top 10 description, charindex(char(13),description) as PosCR,charindex(char(10),description) as PosLF from someothertable