状突出書くことができカスタマーであるEntity Frameworkのは不可能です顧客はマッピングされたエンティティです。代わりに、あなたはこれを試すことができます。
public CUSTOMER GetCustomerByNumber(string customerNumber){
var customerInfo = (from c in db.T_CLUB_CUSTOMER
where c.C_CUSTOMER_NUMBER == customerNumber
select new
{
Id = c.Id,
D_DEFINE = c.D_DEFINE,
B_IS_REAL = c.B_IS_REAL,
C_NATIONAL_CODE = c.C_NATIONAL_CODE
}).SingleOrDefault();
return new Customer() { Id = customerInfo.Id };
}
このクエリは、投影を行うために匿名型を使用しています。その後、匿名型をCustomerタイプのインスタンスにマップできます。 (CUSTOMERDTOがで宣言されていないと仮定したクラスが、ここでは異なる方法を
public CUSTOMERDTO GetCustomerByNumber(string customerNumber){
var customerInfo = (from c in db.T_CLUB_CUSTOMER
where c.C_CUSTOMER_NUMBER == customerNumber
select new CUSTOMERDTO
{
Id = c.Id,
D_DEFINE = c.D_DEFINE,
B_IS_REAL = c.B_IS_REAL,
C_NATIONAL_CODE = c.C_NATIONAL_CODE
}).SingleOrDefault();
return customerInfo;
}
お知らせ:
代わりに、(いわゆるのDTOを使用して)投影を行うには、あなたのDbContextの一部ではないクラスを使用することができます
最初の解決策を試すと、次のエラーが表示されます: 'CUSTOMER'型の定数を作成できません。このコンテンツではプリミティブ型または列挙型のみがサポートされています。 – Armita
それは奇妙です。投影せずにクエリを実行できますか?元の値を試してみてくださいLINQクエリのselect文を実行します。その後何が起こるのですか? – hbulens