ADO.NET Entity Framework 支持属性的存储方式吗?
月影 2008-11-03 11:21:56 如下定义类,实体框架会报告DepartmentID没有Setter,难道实体框架不能指定一个Storage属性(像LINQ 2 SQL一样)?如果真的不能指定,那实在令我太失望了。
因为DepartmentID属性是不能允许类的客户改变的,所以不能有setter属性,如果为了使用实体框架就必须开放Setter,那实在令人不爽了。
如果有什么方法能够建立只读属性,又能让实体框架的映射机制工作,还望高手不吝赐教!万分感谢。
[EdmEntityType]
public class Department : EntityObject
{
private int departmentID;
private string name;
private decimal budget;
private DateTime startDate;
private int administrator;
[EdmScalarProperty(EntityKeyProperty=true, IsNullable=false)]
public int DepartmentID
{
get
{
return departmentID;
}
}
[EdmScalarProperty]
public string Name
{
get
{
return name;
}
set
{
this.name = value;
}
}
[EdmScalarProperty]
public decimal Budget
{
get
{
return budget;
}
set
{
this.budget = value;
}
}
[EdmScalarProperty(IsNullable=false)]
public DateTime StartDate
{
get
{
return startDate;
}
set
{
this.startDate = value;
}
}
[EdmScalarProperty]
public int Administrator
{
get
{
return administrator;
}
set
{
this.administrator = value;
}
}
public static Department[] GetAllDepartment()
{
string connectionString = ConfigurationManager.ConnectionStrings["SchoolEntities"].ConnectionString;
ObjectContext context = new ObjectContext(connectionString);
context.DefaultContainerName = "SchoolEntities";
ObjectQuery<Department> query = context.CreateQuery<Department>("[Department]");
return query.ToArray();
}
}