[英]String replace on select with Entity Framework
我有一個無法修改的SQL Server數據源(我不是dbo)。 我首先使用Entity Framework 6模型進行查詢。 一切都很好,除了我必須選擇客戶名稱,並且只有兩個字符差異。
Datasource Wanted
=============================
¤ Ñ
¥ ñ
MU¤OZ MUÑOZ
Zu¥iga Zuñiga
那么..有一個透明的方法嗎? 顯然......你可以創建一個替換方法,並在查詢costumers表時調用它。 但我想要的是制作一個解決方案,該解決方案適用於已經創建並將編寫的所有查詢。
我讀過關於實施的內容
System.Data.Entity.Infrastructure.Interception.IDbCommandInterceptor
但不確定它是否正確。
查詢的一個例子及其結果;
var aCostumer = db.costumers.Where(n=>n.idCostumer==someId).Select(n=>new{n.idCostumer,n.firstName,n.lastName}).FirstOrDefault();
idCostumer firstName lastName
===================================
1 DAVID MU¤OZ
但我希望查詢結果是:
idCostumer firstName lastName
===================================
1 DAVID MUÑOZ
有人能指出我正確的方向嗎? 提前致謝
您可以向Customer模型類添加屬性以執行替換,並且不會映射或序列化。
這只是意味着將所有對“Name”的引用替換為“CorrectName”。
守則一:
public class Customer
{
// ...
public string Name { get; set; }
[NotMapped]
public string CorrectName
{
get { return Name.Replace('¤', 'Ñ').Replace('¥', 'ñ'); }
set { Name = value.Replace('Ñ', '¤').Replace('ñ', '¥'); }
}
// ...
}
型號一:
// In a new file, so your changes don't get overwritten:
public partial class Customer
{
public string CorrectName
{
get { return Name.Replace('¤', 'Ñ').Replace('¥', 'ñ'); }
set { Name = value.Replace('Ñ', '¤').Replace('ñ', '¥'); }
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.