Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 744
  • Last Modified:

BC30002: Type 'Column' is not defined. Error when usign Linq to SQL class

Hi Experts

I am getting this error when running a page with a gridview bound to a LinqDataSource that is using a Linq to SQL class as its data context.

The error is pointing to the line below in the designer.vb file

Line 907:      <Column(Storage:="_Management_System_ID", DbType:="Int")>  _
Line 908:      Public Property Management_System_ID() As System.Nullable(Of Integer)

Any ideas?

Thanks

Stewart
0
digital_soul
Asked:
digital_soul
  • 8
  • 7
1 Solution
 
Bob LearnedCommented:
The ColumnAttribute class is defined in the System.Data.Linq.Mapping namespace, which is in the System.Data.Linq assembly.  You need a reference to this assembly in your project.
0
 
digital_soulAuthor Commented:
The auto genarated Class file where the error is occuring does include

Imports System.Data.Linq
Imports System.Data.Linq.Mapping
0
 
Bob LearnedCommented:
That is an Imports statement, but you also need a reference in your project to the System.Data.Linq assembly.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
digital_soulAuthor Commented:
In Visual Studio I am selecting Add reference and then selecting System.Data.Linq but its still not working.

Should doing this create a reference in my Web.Config file?
0
 
Bob LearnedCommented:
Are you working with a web application or web site (project file or not)?
0
 
digital_soulAuthor Commented:
Yes its a Project file
0
 
Bob LearnedCommented:
If you have a project file, then it should be under the References node in the Solution Explorer.


Snapshot.png
0
 
digital_soulAuthor Commented:
Hi

There is a reference to System.Data.Linq Under Project - Properties - references. See attached screengrab

Cheers



screengrab.png
0
 
Bob LearnedCommented:
I would look again, in the file folder where your code is, and see if you have a .vbproj file.  It looks like you have a Web Site model (File | New Web Site), instead of a Web Application model (File | New | VB.NET | Web | Web Application).  I asked that question before because there are differences between how the two models behave with ASP.NET.

I see that you are referencing System.Data.Linq v. 3.5, but it is not coming from the Global Assembly Cache (GAC).  I have ASP.NET 4.0, and you can see the difference between the references in this image:


Snapshot.png
0
 
digital_soulAuthor Commented:
Its an ASP.NET Web Application created via File - New project as its part of a multi-project solution. There is a vbproj file.
0
 
Bob LearnedCommented:
VB.NET projects are different than C# projects.  With C# projects, you will see a References node in the Solution Explorer tree.  If you have the correct reference, and the correct Imports System.Data.Linq statements, then you have a system that is getting confused.  When ASP.NET compiles a web page, it includes all the referenced DLLs in the \bin folder.  I can't think of a specific reason for this, off the top of my head.
0
 
digital_soulAuthor Commented:
I appear to have solved it. For some reaosn Visual Studio wasn't adding

<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

to the Web.config file. Ive assed this reference now and the page compiles fine. Thanks for your help though.
0
 
digital_soulAuthor Commented:
Actually the problem is only partially solved. I can now set up a LInqDataSource and bind it to a datagrid and compile this ok. I cant seem to access my DataContext Class programtically though. Is there a difference between how you would access this class in a Project as opposed to a website? usually in a website id just create the Linq to SQL class using the designer and instantly be able to reference it in code ala:

Dim myDataContext As LinqClassDataContext = New LinqClassDataContext ()

In my Project file though Visuaol Studio is not recognising my DataContext Class, despite the file having been automatically generated as usual.
0
 
digital_soulAuthor Commented:
It seemed to be because I was placing my DataContext classes in an App_Code folder which is presumbaly not a recognised Project directory as it isnt an option from Add ASP.NET Folder. As soon as I created the class in the root I was able to access it from code.

Is there a reason why the App_Code folder wouldnt work in a project as it does in  a website?

Cheers
0
 
Bob LearnedCommented:
You said that you were working with a Web Application model web site, and the App_Code, App_Data folders are a construct for Web Site model web sites, so that it can find the code and data modules.
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 8
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now