Я пытался получить службу WCF для доступа к файловой базе данных, которая хранится в локальной файловой системе, но пока безрезультатно.
Я создал базу данных с именем data.mdf в Visual Studio 2010 и запустил этот SQL-запрос.
create table Person
(PersonID int identity (1000,1) not null,
Name nvarchar(50) not null,
Address nvarchar(max)
create table ImportantPerson
(ImportantPersonID int indentity(1000,1) not null,
Name nvarchar(50) not null,
Address nvarchar(max)
и он успешно создал нужные мне таблицы, поэтому я приступил к созданию DataContract:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Data.Linq;
using System.Data.Linq.Mapping;
namespace MyDataContract
{
public class DataDB: DataContext
{
public Table<Person> Persons;
public Table<Important> Importants;
public DataDB(string connstr)
: base(connstr)
{
}
}
[DataContract]
[Table(Name = "Person")]
public class Person
{
private int _ID;
private String _Name;
private String _Address
public Person()
{
}
public Person(String Name, String Address)
{
_Name = Name;
_Address = Address;
}
[DataMember]
[Column(IsPrimaryKey = true, Storage = "PersonID", DbType="int not null", IsDbGenerated = true)]
public int PersonIdentification
{
get{ return _PersonID;}
set{ _PersonID = value;}
}
[DataMember]
[Column(Storage = "Name")]
{
get{ return _Name;}
set{ _Name = value;}
}
[DataMember]
[Column(Storage = "Address")]
{
get{ return _Address;}
set{_Address= value;}
}
public class Person
{
private int _ID;
private String _Name;
private String _Address
public ImportantPerson()
{
}
public ImportantPerson(String Name, String Address)
{
_Name = Name;
_Address = Address;
}
[DataMember]
[Column(IsPrimaryKey = true, Storage = "ImportantPersonID", DbType="int not null", IsDbGenerated = true)]
public int PersonIdentification
{
get{ return _PersonID;}
set{ _PersonID = value;}
}
[DataMember]
[Column(Storage = "Name")]
{
get{ return _Name;}
set{ _Name = value;}
}
[DataMember]
[Column(Storage = "Address")]
{
get{ return _Address;}
set{_Address= value;}
}
Когда я пытаюсь создать экземпляр подключения к базе данных
MyDataContract.DataDB data = new MyDataContract.DataDB(@"c:\data\data.mdf");
Я получаю исключение
Неверное свойство хранилища: PersonID включен
член
'MyDataContract.Person.PersonIdentification'.
Может кто-нибудь помочь мне понять, что не так? Из всего, что я прочитал, это должно сработать, хотя я мог что-то пропустить.