2016-03-04 33 views
-1

我有一個SQLite數據庫,由nHibernate 3「代碼第一」;那就是,該模型首先被寫入,並且映射被Fluent nHibernate更慢地完成。數據庫必須集成到使用實體框架6.1.3的應用程序中。我無法修改數據庫結構(沒有ALTER TABLE)。如何映射table-per-type關聯?

如何配置映射?

中的表創建這樣的:

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 
{ 
    pubic long Id { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 
public class Patient : Person 
{ 
    public string NickName { get; set; } 
} 

我所有試圖映射,因爲失敗的映射(至少默認)是在每個表的主鍵上完成的,並且它們必須具有相同的名稱。在我的情況下,表格Person中的表格ìd和表格Patient中的Person_id

回答

0

下面是我對我所做的映射層次結構中的修改:

public partial class Person 
{ 
    [Key] 
    pubic 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; } 
}