[英]Entity Framework Db First and Enum
我使用表Orders拥有Microsoft的Northwind数据库:
CREATE TABLE "Orders" (
"OrderID" "int" IDENTITY (1, 1) NOT NULL ,
"CustomerID" nchar (5) NULL ,
"EmployeeID" "int" NULL ,
"OrderDate" "datetime" NULL ,
"RequiredDate" "datetime" NULL ,
"ShippedDate" "datetime" NULL ,
"ShipVia" "int" NULL ,
"Freight" "money" NULL CONSTRAINT "DF_Orders_Freight" DEFAULT (0),
"ShipName" nvarchar (40) NULL ,
"ShipAddress" nvarchar (60) NULL ,
"ShipCity" nvarchar (15) NULL ,
"ShipRegion" nvarchar (15) NULL ,
"ShipPostalCode" nvarchar (10) NULL ,
"ShipCountry" nvarchar (15) NULL ,
CONSTRAINT "PK_Orders" PRIMARY KEY CLUSTERED
(
"OrderID"
),
CONSTRAINT "FK_Orders_Customers" FOREIGN KEY
(
"CustomerID"
) REFERENCES "dbo"."Customers" (
"CustomerID"
),
CONSTRAINT "FK_Orders_Employees" FOREIGN KEY
(
"EmployeeID"
) REFERENCES "dbo"."Employees" (
"EmployeeID"
),
CONSTRAINT "FK_Orders_Shippers" FOREIGN KEY
(
"ShipVia"
) REFERENCES "dbo"."Shippers" (
"ShipperID"
)
)
我想通过实体框架使用此数据库。 为此,我为现有数据库创建edmx-model。 现在,我想添加枚举属性Status,该属性应该由DateTime.Now,OrderDate,RequiredDate等计算,但是我不知道如何在不更改Orders表的情况下将该属性添加到Order类。 我应该继承Order类还是有一些更简洁的方法?
在与Order类相同的名称空间下添加一个局部类(具有相同的名称),然后在其中添加属性:
public partial class Order
{
public SomeStatusEnum Status
{
get { //Put your code to figure out the enum here. }
}
}
这样做是因为正是由于这个原因,EF生成的类是局部的。
使用此方法可能会遇到的一种常见情况是,如果您只是尝试添加类,则会出现错误。 这是因为EDMX模型将在幕后使用该类的相同名称创建一个文件。 如果遍历设计者添加的文件,则可以找到此文件。 为了解决这个问题,创建一个文件夹(例如POCO)并将您的类放在其中,然后更改名称空间以匹配EDMX类的名称空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.