我有一个问题,我现在已经挣扎了一段时间。
鉴于数据库中存在以下现有表:
CREATE TABLE [dbo].[ModuleData] (
ItemID INT NOT NULL,
DataType INT NOT NULL,
DataID INT NOT NULL
);
CREATE TABLE [dbo].[Costs] ( -- DataType = 2
CostID INT IDENTITY (1, 1) NOT NULL,
Amount MONEY NOT NULL,
);
CREATE TABLE [dbo].[Actions] ( -- DataType = 4
ActionID INT IDENTITY (1, 1) NOT NULL,
Note NVARCHAR (1000) NULL,
);
我想将它们映射到以下类:
public class ModuleData
{
public int ItemID {get; set;}
public int DataID { get; set; }
public int DataType { get; set; }
}
public class Cost:ModuleData
{
public Cost()
{
//DataType = 2;
}
public int CostID {get; set;}
public Double Amount {get; set;}
}
public class Action: ModuleData
{
public Action()
{
//DataType = 4;
}
public int ActionID { get; set; }
public String Note {get; set;}
}
使用DataType
作为鉴别器,使用DataID
作为密钥。
我的印象是,应该可以使用流畅的API,但我无法让它工作。
答案 0 :(得分:0)
在EntityTypeConfiguration<ModuleData>
中,输入
Map<Cost>(m => m.Requires("DataType").HasValue(2));
Map<Action>(m => m.Requires("DataType").HasValue(4));
或在OnModelCreating
写
modelbuilder.Entity<ModuleData>()
.Map<Cost>(m => m.Requires("DataType").HasValue(2))
.Map<Action>(m => m.Requires("DataType").HasValue(4));
希望这有帮助!