的問題類型「System.Data.Linq.DataContext」在去一個特定的頁時未被引用
錯誤的組件定義的(在本地調試):CS0012:類型「系統.Data.Linq.DataContext'在未引用的程序集中定義。您必須添加對程序集「System.Data.Linq,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089」的引用。
下面是代碼中的錯誤信息引用的行:
線28:
第29行:
第30行:公共類_Page_Views_blah_granny_cshtml:System.Web.Mvc.WebViewPage {
第31行:
第32行:#line hidden
所有其他頁面都很好用 - 只有在訪問特定頁面時纔會發生這種情況。該參考正在所有其他頁面上進行。據我所能確定,這不是參考的問題。
我花了很多時間研究這個問題。
我發現的所有答案都建議轉到web.config並將一個程序集引用放到system.web> configuration>程序集中。我沒有列出組件,我懷疑這是更老的版本。無論如何,我做到了。它給了我另一個錯誤,說它不知道如何處理程序集。
我刪除了system.data.linq並重新添加了它。
我重新啓動了VS和我的電腦。
我的代碼 - 由VS默認生成 - 具有System.Linq。
背景 - 這是如何開始:
的應用程序是MVC 4,C#。
我在我的DataContext中創建了一個新類,添加了一個新的控制器,並創建了一個強類型視圖。
這裏有一些非常相似的代碼(可能不需要,但以防萬一)。
兩類:
public class granny {
public string data { get; set; }
public string criteria { get; set; }
}
public List<granny> getGranny() {
var a = from x in grannytable
join dx in anothertable
on x.criteria equals dx.criteria
select new granny {
data = x.somenewdata;
};
return a.ToList();
}
這裏是控制器:
public ActionResult granny() {
return View(db.getGranny());
}
沒什麼特別的存在。
該頁面是一個典型的剃刀視圖,強類型「列表」...它有一個表,它迭代創建,傾銷數據,因爲它去。
我很高興根據需要提供任何其他代碼。
我還沒有搞亂web.config。我沒有刪除或調整頁面上的任何參考。所有其他意見都非常出色。
當我在本地運行它,並嘗試去/奶奶我得到上述錯誤。
感謝您的幫助!
解決方案:我進入引用,併爲System.Linq(或舊版本,我想,System.Data.Linq)並將CopyLocal更改爲True。
忘記配置文件中的程序集,您的項目是否只有一組「正常」的引用? (在Solution Explorer中,有沒有參考的項目?) – 2013-03-25 17:51:42
當然是有。它引用System.Data.Linq。我刪除了參考文獻並添加了它,認爲有些東西被掛在那裏。我正在使用包含的.NET System.Data.Linq。它指向C:\ Program Files文件\參考大會\微軟\框架\ .NETFramework \ V4.0 \ System.Data.Linq.dll因爲它應該。值得注意的是我的其他網頁使用linq就好了。我不認爲這是一個linq參考問題,因爲它不是一個合羣的問題 - 它只是這一頁。 – shubniggurath 2013-03-25 17:58:42
您可以提供演示該問題的完整解決方案或項目? – Phil 2013-04-01 21:45:41