我在想哪种是使用不同数据库的模型定义的最佳方法。 我有几个共享相同对象的项目。第一个项目使用 SQlite 数据库,而第二个项目使用实体框架。
所以考虑这个对象定义:
[Table("Members")] <---- Specific attribute of Sqlite
class Person
{
[PrimaryKey] <---- Specific attribute of Sqlite
public Guid Id {get; set;}
public string Name {get; set;}
[Ignore] <---- Specific attribute of Sqlite
public int Age {get; set;}
}
现在,如果我想重用此定义,我必须删除 Sqlite 属性并使用 Entity Framework 属性更改它们。
我应该像这样创建一个 BasePerson 对象吗
class Person
{
public Guid Id {get; set;}
public string Name {get; set;}
public int Age {get; set;}
}
然后根据使用的数据库派生子对象,如下所示覆盖属性?
using Sqlite;
[Table("Members")]
class PersonSqlite : Person
{
[PrimaryKey]
public override Guid Id {get; set;}
[Ignore]
public override int Age {get; set;}
}
using EntityFramework;
[Table("Members")]
class PersonEF : Person
{
[Key]
public override Guid Id {get; set;}
[Ignore]
public override int Age {get; set;}
}
让我知道你对此的想法。
谢谢
保罗
从系统中选择*。
x$io_global_by_file_by_latency
从系统中选择*。statements_with_full_table_scans
从系统中选择*。x$schema_table_statistics
[表(“成员”)]
PersonEF 类:人
{其中年龄=48;
[按键] 公共覆盖 Guid Id {get;设置;}
[忽略]
公共覆盖 int Age {get;放;}
从键值中选择 *
其中年龄 = 15+,
当局部性 = jpp 时,
服务车道1
协议 FD = 16;
}