说说在MVC开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助)...
前提:數(shù)據(jù)底層,使用的是MVC架構(gòu),對于數(shù)據(jù)表中的狀態(tài)及相關(guān)字段,采用了枚舉型進(jìn)行對應(yīng)
1 序列中不包含任何元素
? 解決:將Single()改為DefaultOrSingle()
2 序列包含一個以上的元素
? 解決:很多情況都是原始數(shù)據(jù)的問題
3 不能在已使用的實體上添加新實體
4 Duplicate key is already ,
? 3,4的解決為:用? base._db.ExecuteCommand()進(jìn)行SQL語句的重寫,
不要用LINQ自帶的insert,就不會出現(xiàn)錯誤了
5? 未將對象引用設(shè)置到對象的實例。 值不能為空。參數(shù)名: source。
?? 解決:? this.iProduct_ProductFilesRepository.Insert(_entity.Product_ProductFile.Cast<Entity.IDataEntity>().ToList());,當(dāng)遇到將list實體類型換為接口list規(guī)范時,應(yīng)該用.Cast<接口類型>().ToList()
6 查詢參數(shù)不能為“System.Object”類型。
解決:這是因為在LINQ的ExecuteCommand不理解空值,當(dāng)我們傳遞的參數(shù)為 null 時,就會出現(xiàn)這個問題,解決方法是,在為實體加string.empty這個空值屬性
7? Incorrect syntax near '@p0'.
解決:查看我們的SQL代碼,被編譯成了什么,可能是多個括號之類的。如:delete from users where (userid={0},這很明顯是不對的,哈哈
8 不支持SQL的轉(zhuǎn)化
?? 解決1,看看是否用了枚舉類型,如果用了,應(yīng)該先把IQueryable進(jìn)行ToList,得到真正的數(shù)據(jù)后才能進(jìn)行判斷
?? 解決2,請看你的原始數(shù)據(jù),很有可以是數(shù)據(jù)問題
?? 解決3,請看程序代碼的關(guān)聯(lián)表查詢,很可能是它沒有找出數(shù)據(jù)的問題
9? 未將對象引用設(shè)置到對象的實例。
解決:查看數(shù)據(jù)庫向數(shù)據(jù)實體賦值時,枚舉類型的字段是否為null了,如果為null,就會出錯
10??? 查詢包含對不同數(shù)據(jù)上下文上所定義項的引用。
解決:查看底層工廠建立是否返回datacontext有問題,是否為空了。
11??? 枚舉在LINQ中引發(fā)的異常:不支持SQL轉(zhuǎn)換
??? 當(dāng)枚舉使用字符名稱,沒有數(shù)據(jù),然它的數(shù)值存儲在數(shù)據(jù)表中時,我們在返回數(shù)據(jù)時,必須在ToList()才行,否則就會出現(xiàn)這種問題
??? 例如:
???? /// <summary>
???? /// 以下是一個積分類型的枚舉,一種類型對應(yīng)數(shù)據(jù)表中同樣類型的一個數(shù)值
???? /// </summary>
?? public enum PrestigeTypeCode
??? {
?????????? IAsk_Question,
??????????? IAsk_Answer,
? }
? //表據(jù)表如下:
ID??? 描述??????? 數(shù)值??? 枚舉名稱
1?? 提問?????????? 1??? IAsk_Question
2?? 回答?????????? 1??? IAsk_Answer
結(jié)論:當(dāng)我們通過枚舉去從數(shù)據(jù)庫(SQLSERVer里)取數(shù)值時,必須要把結(jié)果集ToList()才行,如代碼:
int value = new PrestigeTypesRepository().GetPrestigeTypes().ToList().Where(item => item.PrestigeTypeCode == prestigeTypeCode).Single().Amount;
如果,枚舉的值,在枚舉元素里讀上,就不用去tolist()了
12 不能將 Null 值賦給類型為 System.Int32 (不可為 null 的值類型)的成員
解決:應(yīng)該是數(shù)據(jù)的問題,Int類型的SQL表中出來了NULL值,或者是由于枚舉類型轉(zhuǎn)換失敗的原因
轉(zhuǎn)載于:https://www.cnblogs.com/lori/archive/2011/07/18/2109817.html
總結(jié)
以上是生活随笔為你收集整理的说说在MVC开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器控件GridView的排序问题
- 下一篇: albian开发笔记五--谈缓存同步