【发布时间】:2020-06-03 00:29:38
【问题描述】:
我有一个支持两个数据库的应用程序。 MSSQL 和 SQLite。我正在改进底层数据访问和模型并使用 RepoDb。我会为 SQLite 和 MSSQL 使用相同的模型。根据连接字符串,我创建了我的连接对象(即 SQLiteConnection 或 SqlConnection)。我的一个实体遇到问题。问题在于列类型。
public class PLANT
{
public string OP_ID {get;set;}
}
SQL Server 中的 OP_ID 映射到唯一标识符,而 SQLite 中映射到 nvarchar。在我尝试这样做的地方,它适用于 SQLiteConnection。我面临的问题是当我使用 SqlConnection 时
var plant = connection.Query<PLANT>(e => e.PL_ID == "3FFA25B5-4DF5-4216-846C-2C9F58B7DD90").FirstOrDefault();
我收到错误
“‘System.Guid’和‘System.String’类型之间没有定义强制运算符”
我尝试在OP_ID 上使用IPropertyHandler<Guid, string>;它适用于 SqlConnection,但适用于 SQLiteConnection。
有没有一种方法可以让两个连接使用相同的模型?
【问题讨论】:
标签: sql-server sqlite