2012-01-04 48 views
1

我正在使用sqlmetal.exr爲我生成映射代碼。我通過使用調用sql金屬。sqlmetal.exe返回使用泛型類型'System.Data.Linq.Table'需要1個類型參數

cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 
SqlMetal.exe /server:servername\SQL /database:mydb /code:mycode.cs 

輸出是一個CS文件和命令PROMT說:

Microsoft (R) Database Mapping Generator 2008 version 1.00.30729 for Microsoft (R) .NET Framework version 3.5 Copyright (C) Microsoft Corporation. All rights reserved.

當我將文件添加到我的項目,並嘗試建立它,我得到以下錯誤:

Using the generic type 'System.Data.Linq.Table' requires 1 type arguments

這是在我的mycode.cs文件中。我引用System.Data.Linq和System.Data。失去了什麼引用來使其發揮作用?

更新

Make sure you have System.Data.Linq in your GAC and that the assembly version is 3.5.0.0. Also make sure that's the version your project is referencing.

enter image description here

enter image description here

Double-check that your application's target framework hasn't somehow been changed to something other than 3.5. The Linq To SQL features only work with the 3.5 framework.

enter image description here

+0

你在做任何Linq SQl或類似的東西..?你是否在代碼中使用任何Linq語句..?如果不是從.cs文件的頭部刪除使用的System.Linq – MethodMan 2012-01-04 15:18:01

+0

是的,我正在做Linq到SQL,並且在我的代碼中有Linq語句。 – John 2012-01-04 15:19:05

+0

當你編譯項目時好的..是GAC中的System.Data.Linq ..? – MethodMan 2012-01-04 15:20:14

回答

1

如果問題仍然存在,這裏的事情列出來,你CA ñ嘗試解決該問題

有幾件事情來檢查/嘗試:

  • 確保您在GAC和程序集的版本是3.5.0.0有System.Data.Linq程序。另外請確保這是您的項目引用的版本。

  • 當你看到項目引用是一個黃色的「!」圖標旁邊的圖標?如果是這樣,那就表示你的項目引用的System.Data.Linq的版本沒有被VS找到。您應該嘗試刪除參考並添加一個新參考。

  • 仔細檢查您的應用程序的目標框架還沒有被更改爲3.5以外的內容。 Linq To SQL功能僅適用於3.5框架。

+0

感謝用這些問題的答案更新了問題。一切似乎都很好,但仍然沒有工作。謝謝你的幫助。 – John 2012-01-04 15:34:45

+0

將Copy Local設置爲True,看看是否有幫助..當你部署它時,必須有一個問題.. System.Data.Linq的版本不在該目標系統上..也看看Path ..這就是您的本地路徑以及您不能假定目標路徑與您的本地路徑相同.. – MethodMan 2012-01-04 15:36:19

相關問題