问题
Entity Framework has created the required partial classes. I can add these partial classes to the Data Sources window and the properties display as expected. However, if I extend any of the classes in a separate source file these properties do not appear in the Data Sources window even after a build and refresh.
All properties in partial classes across source files work as expected in the Data Sources window except when the partial class has been created with EF.
EDIT: After removing the offending table for edm designer, adding back in it all works are expected. Hardly a long term solution. Anyone else come across a similar problem?
回答1:
I have used the following work around:
Step 1... Create Required Projects In your solution create two projects: 1 - the application project (so the app you are working e.g. a windows forms application) 2 - the datalayer project (a class library project, the one that makes DLL's as a build output)
Step 2... Link The Projects In the application project, add a project reference to the datalayer project, (references - add reference - project-Tab)
Step 3... Create a property in the partial class In the datalayer project: - add the database file if you are using a local database - add a new Linq to SQL classes item (.dbml file) - add the desired tables to the Designer sheet from the server explorer - right click one of the classes in the designer and select 'View Code' - you will be taken to a file with the partial class information already completed. - make the partial class public - create a test property eg: public string TEST { get{return "TEST";} } - build the datalayer project - you have now added a property to the partial class of one of your designer built classes...
Step 4 - Add Datasources - in your application project - go to the datasources tab and add a new object datasource, selecting the class you added the partial class property too.
- you should see the TEST property in the datasources view...
all done
I think it works because having the .dbml file and the partial class in a separate project and accessing via a DLL in the application project.. forces Visual Studio to compile and makes everything available in the application project... as opposed to a dll and separate temp file that seems to happen when everything is in the one project leaving the partial class properties off the datasources list..
plus its not too bad.. having a separate project for your datalayer makes it reusable between projects.. :D
hope it works for someone...
来源:https://stackoverflow.com/questions/264074/properties-in-partial-class-not-appearing-in-data-sources-window