我有一个由nHibernate
3" 代码构建的SQLite数据库&#34 ;;那时,首先编写模型,然后使用Fluent nHibernate
进行映射。必须将数据库集成到使用 Entity Framework 6.1.3 的应用程序中。我无法修改数据库结构(无ALTER TABLE
)。
如何配置映射?
这些表是这样创建的:
CREATE TABLE [Person] (
[Id] bigint NOT NULL
, [FirstName] text NULL
, [LastName] text NULL
, CONSTRAINT [sqlite_master_PK_Person] PRIMARY KEY ([Id])
);
CREATE TABLE [Patient] (
[Person_id] bigint NOT NULL
[Nickname] text NULL
, CONSTRAINT [sqlite_autoindex_Patient_1] PRIMARY KEY ([Person_id])
);
我想要的类层次结构是:
public class Person
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Patient : Person
{
public string NickName { get; set; }
}
我尝试映射失败的原因是,映射(至少默认情况下)是在每个表的主键上完成的,并且它们必须具有相同的名称。就我而言,表ìd
中的ID为Person
,表Person_id
中的Patient
。
答案 0 :(得分:0)
以下是我对地图层次结构所做的修改:
public partial class Person
{
[Key]
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public partial class Patient : Person
{
[Key, Column("Person_id")]
public new long Id
{
get { return base.Id; }
set { base.Id = value; }
}
public string NickName { get; set; }
}