谁能告诉我如何在第 9 行获取当前的数据库提供程序?因此它可以为MySQL迁移正确生成迁移。我该如何以干净的方式做到这一点。
1 internal class GroupConfiguration : IEntityTypeConfiguration<Group>
2 {
3 public void Configure(EntityTypeBuilder<Group> builder)
4 {
5 builder.ToTable(nameof(Group));
6 builder.HasKey("Id");
7 builder.Property(u => u.Id)
8 .ValueGeneratedOnAdd()
9 .HasDefaultValueSql((database.IsMySql()) ? "uuid()" : "newsequentialid()");
...
Run Code Online (Sandbox Code Playgroud)
我正在使用 .NET Core 3.1,并且我的 web 应用程序支持多个数据库提供程序。目前是 MySQL (Pomelo) 和 SQL Server。我需要它以正确的方式生成迁移。所以我有 MySQL 和 SQL Server 迁移。
但我不想手动更新 MySQL 生成的迁移。
mysql sql-server asp.net-core-mvc entity-framework-migrations
[dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.InvalidDataAccessApiUsageException: Can't compare test expression of type [Facility] with element of type [basicType@4(java.lang.Integer,4)]] with root cause
java.lang.IllegalArgumentException: Can't compare test expression of type [Facility] with element of type [basicType@4(java.lang.Integer,4)]
at org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.assertComparable(SqmCriteriaNodeBuilder.java:2098)
at org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.equal(SqmCriteriaNodeBuilder.java:2121)
at org.hibernate.query.sqm.internal.SqmCriteriaNodeBuilder.equal(SqmCriteriaNodeBuilder.java:182)
at com.freit.medicalservice.repository.specification.PatientSpecification.lambda$facilityIdEqual$2a154287$1(PatientSpecification.java:139)
at org.springframework.data.jpa.domain.SpecificationComposition.toPredicate(SpecificationComposition.java:62)
at org.springframework.data.jpa.domain.SpecificationComposition.lambda$composed$e1dcbe07$1(SpecificationComposition.java:49)
at org.springframework.data.jpa.domain.SpecificationComposition.toPredicate(SpecificationComposition.java:62)
Run Code Online (Sandbox Code Playgroud)
在我从 spring 及其相关包(包括 JPA、Hibernate)从版本 5 迁移到版本 6 后,我在 JPA 规范上遇到了这个愚蠢的错误,这两天一直困扰着我。
我遇到错误的线路;
public static Specification<Patient> facilityIdEqual(Integer facilityId) {
return (root, query, builder) -> {
if (facilityId != …Run Code Online (Sandbox Code Playgroud) hibernate jpa spring-data-jpa spring-boot entity-framework-migrations
我使用实体框架 6 和 msyql 数据库创建了一个新的 .NET MVC 5 Web 应用程序。我首先使用代码/模型。数据库服务器有一个默认的存储引擎 MyISAM,但我希望 EF 创建的表是 InnoDb。有谁知道是否有办法指定 EF 将在CREATE TABLE语句中使用的存储引擎?
mysql asp.net-mvc entity-framework entity-framework-6 entity-framework-migrations
我正在开发一个 ASP.NET MVC 项目。我正在使用实体框架代码优先方法与数据库交互。但我在为实体的自引用外键设置级联删除时遇到问题。
这是我的带有自引用外键的实体类
public class Category
{
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
[MaxLength(55)]
public string MmName { get; set; }
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Category ParentCategory { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的背景
public class StoreContext : DbContext
{
public StoreContext():base("DefaultConnection")
{
}
public DbSet<Category> Categories { get; set; }
protected override void OnModelCreating(DbModelBuilder …Run Code Online (Sandbox Code Playgroud) asp.net entity-framework foreign-keys ef-code-first entity-framework-migrations
我有一个 dbcontext 类,我在其中初始化了 4 个 dbset。我的连接字符串是
<connectionStrings>
<add name="somename" connectionString="Data Source=.; initial catalog=someDb; user ID=ab; Password:111111; MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
我的 dbcotext 类是
public AstroEntities(): base("somename")
{
Database.SetInitializer<AstroEntities>(new CreateDatabaseIfNotExists<AstroEntities>());
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Contact>().ToTable("Contacts");
modelBuilder.Entity<Appointment>().ToTable("Appointments");
modelBuilder.Entity<Consultation>().ToTable("Consultations");
modelBuilder.Entity<HomePageMessage>().ToTable("HomePageMessages");
base.OnModelCreating(modelBuilder);
}
public DbSet<Contact> Contacts { get; set; }
public DbSet<Appointment> Appointments { get; set; }
public DbSet<Consultation> Consultations { get; set; }
public DbSet<HomePageMessage> Homepagemessages { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我启用自动迁移时,我收到如下错误
“不支持关键字:‘密码:111111;多个活动结果集’。”
有人能说有什么问题吗?
我在将 Fluent API 扩展到我的继承类时遇到问题。我采用了TPT(table per type)方法,每个类型的继承都有一个表。我喜欢每种类型的表,因为数据库完全规范化并且易于维护。我在覆盖本文指示我执行的onModelCreating方法时遇到错误。它正在丢失用户和角色实体的密钥。
基础抽象类
namespace Home_Warranty.Models
{
public abstract class Vendor
{
[Key]
public int VendorID { get; set; }
[Required]
public string CompanyName { get; set; }
[Required]
public int StreetNumber { get; set; }
[Required]
public string StreetName { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
从供应商继承的 ServiceCompany 类
namespace Home_Warranty.Models
{
[Table("ServiceCompanies")]
public class ServiceCompany : Vendor
{
public string ACHClaim { get; set; }
public virtual ICollection<SubContractorCompany> SubContractorCompanies{ get; set; } …Run Code Online (Sandbox Code Playgroud) linq inheritance linq-to-entities entity-framework entity-framework-migrations
因奇怪的错误而被阻止。我在一个 asp.net 核心 Web 应用程序中工作,并在其中使用 EF 核心 1.1.0。
EF 数据库迁移引发错误“字符串参数‘migrationId’不能为空。” 尝试执行以下命令时
dbcontext.Database.Migrate();
Run Code Online (Sandbox Code Playgroud)
从链接中执行了接受的答案,但没有解决我的问题。
Uninstall donet 2.0.0, installed 1.1.0 and restarted PC. Still i am getting the same error.
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题。
entity-framework .net-core asp.net-core-1.1 entity-framework-migrations
我正在尝试在visiual stdio 2015 中的MVC Code-First c# 项目上启用迁移。我安装了oracle 11g odt 和客户端两台机器,我做了相同的安装,并在我的xe 数据库上创建了一个架构。两台机器是相同的 tns 文件,但其中一台在 oracle 数据库上进行了迁移,其中一台没有。我做了所有的事情,但我无法解决 ORA-12154 问题。
这个我的 TNS 文件位于 oracle 客户端和 oracexe 和 dbcontext
XE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = XE)
(SRVR = DEDICATED)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.11.0.234)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
this is my dbcontext
using System; …Run Code Online (Sandbox Code Playgroud) 我有一个 ASP.NET 核心项目“Api”,其目标是:
<TargetFramework>net471</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
该项目引用另一个类库项目“Repository”,目标为:
<TargetFramework>netstandard1.4</TargetFramework>
Run Code Online (Sandbox Code Playgroud)
“Api”项目的配置如下:
services
.AddEntityFrameworkSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly("Repository"))
)
.AddScoped(p => new ApplicationDbContext(p.GetService<DbContextOptions<ApplicationDbContext>>()));
Run Code Online (Sandbox Code Playgroud)
当我在 PMConsole 中时,我输入:
添加-迁移初始
然后我得到这个错误:
Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
add-migration : Exception calling "Substring" with "1" argument(s): "StartIndex cannot be less than zero.
Parameter name: startIndex"
At line:1 char:1
+ add-migration
+ ~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Add-Migration], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentOutOfRangeException,Add-Migration
Run Code Online (Sandbox Code Playgroud)
我有什么错吗?
entity-framework-core asp.net-core-2.0 entity-framework-migrations
我需要使用特定类型的实体创建数据库上下文,因为我在解决方案上有多个数据库上下文。我的问题是OnModelCreating我们从程序集中应用配置builder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly())所以我想仅使用IEntityTypeConfiguration具有基本模型的实体的类型来应用配置BaseEntity,如下所示
public class DaysOfWeekBuilder : IEntityTypeConfiguration<DaysOfWeek>
{
public void Configure(EntityTypeBuilder<DaysOfWeek> builder)
{
builder.ToTable("DaysOfWeek");
builder.Property(e => e.Name).HasMaxLength(15);
}
}
Run Code Online (Sandbox Code Playgroud)
所以DaysOfWeek实体有基类BaseEntity
public class DaysOfWeek : BaseEntity
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我们如何 IEntityTypeConfiguration使用具有基本模型的实体进行过滤BaseEntity?
谢谢
c# dbcontext entity-framework-core asp.net-core entity-framework-migrations
entity-framework-migrations ×10
asp.net-mvc ×3
c# ×2
mysql ×2
.net-core ×1
asp.net ×1
asp.net-core ×1
dbcontext ×1
foreign-keys ×1
hibernate ×1
inheritance ×1
jpa ×1
linq ×1
oracle ×1
spring-boot ×1
sql-server ×1