У меня есть SQLite и SQL Express базы данных, каждая из которых имеет таблицу со столбцами, как показано ниже:
мой упрощенный объект выглядит следующим образом:
public class Customer
{
public string BusinessIdentifier { get; set; }
}
, если вы заметили, что тип данных отличается для базы данных bigint
против string
в моей сущности, например.
Я использовал Fluent API
для отображения, как показано ниже:
entity.Property(p => p.BusinessIdentifier).HasColumnName("CUSTOMER")
на SQLite , когда я использую options.UseSqlite(connectionString);
, эта работа простохорошо.Однако для SQLite connectionString="Data Source=my_db.db"
при использовании SQL Server Express с использованием options.UseSqlServer(connectionString);
возникают ошибки при несовпадении типов.
Я должен явно обработать это преобразование на Fluent API , как показано ниже:
entity.Property(p => p.BusinessIdentifier).HasColumnName("CUSTOMER").HasConversion(v => Convert.ToInt64(v), v => v.ToString());
SQL Server connectionString="Data Source=my_machine\SQLEXPRESS;Initial Catalog=my_db;Integrated Security=True;"
Вопрос :
Может кто-нибудь объяснить, почему это различие между двумя типами баз данных и действительно ли оно должно быть таким конкретным в каждом случае?
С уважениемКиран