亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Linq2Sql出現無法將Guid轉換成Sql的錯誤.

使用Linq2Sql出現無法將Guid轉換成Sql的錯誤.

忽然笑 2018-09-14 08:05:04
錯誤信息如下:Bugu.UnitTest.EventRepositoryTest.TestEventRepository:System.NotSupportedException : 成員“Bugu.Infrastructure.DomainBase.IEntity`1[System.Guid].Key”不支持轉換為 SQL。以下是我出錯的代碼.TEntity和Key是泛型類型1 public virtual TEntity GetByKey(Key key) 2         { 3             var item = entityTable.Single(i => i.Key.Equals(key)); 4              5             if (item == null) 6                 return null; 7             var entity = entityFactory.Build(item); 8             entityBuilderAssistances(entity, item); 9 10             return entity;11         }連這個糾結的方法都用了,也不行...item = entityTable.Single(i => new Guid(i.Key.ToString()) == new Guid(key.ToString()));
查看完整描述

1 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

LINQ2SQL,和LINQ2OBJ不一樣,使用的是Expression<>,entityTable.Single(i =>i.Key.Equals(key))當中的Single里面的會狗造成表達式樹,這是編譯器自動做的,但是運行時這個表達式樹會 交給LINQ2SQL的Provider,Provider負責將表達式樹使用SQL表示。所以你這里的i.Key調用的是MemberExpression(),但是Provider不知道如何轉換你的Key到SQL,于是報錯。

我想不到什么好的解決辦法,或許(好像不是好辦法)可以Key=>string做成存儲過程proc,entityTable.Single(i =>proc(i).EqualskeyString)


查看完整回答
反對 回復 2018-09-19
  • 1 回答
  • 0 關注
  • 672 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號