c# 如何为不同的数据库框架重用模型

问题描述 投票:0回答:1

我在想哪种是使用不同数据库的模型定义的最佳方法。 我有几个共享相同对象的项目。第一个项目使用 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;}

}

让我知道你对此的想法。

谢谢

保罗

c# sqlite entity-framework
1个回答
0
投票

从系统中选择*。

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;

}

© www.soinside.com 2019 - 2024. All rights reserved.