问题标签 [ef-model-builder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在子类中设置鉴别器属性 - 实体框架
我有以下问题。我正在使用实体框架构建 TPH 继承,我需要在子类的现有属性上设置鉴别器列。例子:
所以 - 每个建筑物都需要 BuildingType 属性,而 BuildingType 类具有属性 Category(已经存在)并且可以区分建筑物 TPH 继承。我怎样才能做到这一点?
c# - 关系约束中的 Dependent 和 Principal Roles 中的属性数量必须相同
我正在尝试在 2 个班级之间创建一对多的关系,主要是我试图在房间号和 Campusid 之间设置一个复合键。我尝试使用注释并覆盖模型构建器,但仍然没有任何效果......
这是抛出的异常:
未处理的异常:System.Data.Entity.ModelConfiguration.ModelValidationException:在模型生成期间检测到一个或多个验证错误:Room_Campus_Target_Room_Campus_Source::关系约束中的从属角色和主体角色中的属性数量必须相同。
这是我的模型:
这是我的模型构建器 attepmt 有同样的例外..
提前致谢!:)
entity-framework - 实体框架 DbContext ModelCaching 属性不可用
我正在使用 EF codefirst 编写一些用于创建数据库的单元测试。在执行单元测试期间,该DBContext->OnModelCreating
方法仅执行 1 次,然后为其余测试缓存模型。
我希望能够通过尝试设置 ModelCaching 属性来分别为每个单元测试执行“OnModelCreating”,如文档中指定的那样:
但是,此模型构建器上没有这样的属性“ModelCaching”。
我还能如何禁用此模型缓存?测试一个接一个地运行良好,但是由于这种缓存,它们在连续运行时会失败。
更好地说,我怎样才能强制ApplicationDbContext -> OnModelCreating
为每个测试单独运行?现在它只运行一次,当它第一次用于一堆单元测试时。
c# - 如何将 varbinary 中的密码从数据库解析为 Web Api 身份验证中的 IdentityUser 字符串
我的数据库中有一个名为Password
type的列Varbinary(150)
。当我想在 web api 中查询该数据库时,例如:
var dbCon = ApplicationDbContext.Create(connectionStringUsers.ToString());
var users = dbCon.Users;
var list = users.ToList();
在最后一行我有这个错误:
'IdentityUser'4' 上的 'PasswordHash' 属性无法设置为 'System.Byte[]' 值。您必须将此属性设置为“System.String”类型的非空值。
它知道如果我将模式从类型更改Varbinary
为Varchar
它就会起作用。但我无法更改架构。我怎样才能破解这个解析?
谢谢
更新 1
也许是这样的:
modelBuilder.Entity<ApplicationUser>().ToTable("MyUsers", "dbo").Property(p => p.PasswordHash).HasColumnType("varbinary");
但我得到这个错误:
错误 2019:指定的成员映射无效。'OhmioWEBAPI.Models.ApplicationUser' 类型的成员 'PasswordHash' 的类型 'Edm.String[Nullable=True,DefaultValue=,MaxLength=Max,Unicode=True,FixedLength=False]' 与 'SqlServer.varbinary[ Nullable=True,DefaultValue=,MaxLength=8000,FixedLength=False]' 'CodeFirstDatabaseSchema.ApplicationUser' 类型的成员'Password'。
entity-framework-core - EF Core 2.0 provider specific model configuration
I am trying to upgrade an EF Core 1.x project to 2.0. In 1.x I was taking advantage of provider-specific extension methods (e.g. ForSqlServerHasDefaultValueSql
/ForSqliteHasDefaultValueSql
or ForSqlServerHasColumnType
) but these seem to have been removed in 2.0.
Since each provider has its own flavor of SQL and capabilities, I need to be able to use slightly different setups or SQL strings per provider in OnModelCreating
. For example to set a default value I might have:
How is this done in 2.0?
c# - 我如何在 Visual Studio 上修改身份用户表
我在 Visual Studio 上创建了一个 Web 应用程序项目,它为我的数据库创建了一些默认表,例如 UserRoles-Claims 等。
我如何修改它们以更改它们的 PK 或它们所拥有的属性。
我尝试使用 Fluent API,但我只能访问 Application User 表
c# - 连接表的级联删除
我正在使用 EF 6 在 MS SQL Server 上开发数据库-代码优先我有这样的架构:广告|消息|附件
在哪里
广告有很多消息广告有很多附件
消息有很多附件
附件表有 2 个 FK,一个用于广告,一个用于消息。Messages 表对 Ads 有 1FK。
我想创建级联规则,当我删除广告时,它会删除该广告的所有消息及其附件(消息附件)和广告的附件,但到目前为止我失败了。
我明白了
在表“附件”上引入 FOREIGN KEY 约束“FK_dbo.Attachments_dbo.Messages_MessageId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
无法创建约束或索引。请参阅以前的错误。
模型构建器代码如下
asp.net-mvc - 尝试登录/注册时列名“UserId”和“IdentityUser_Id”无效
我一直在尝试基于位于此处的 OpenOrderFramework 在 MVC 中建立自己的在线商店 - https://github.com/lbacaj/OpenOrderFramework
除了尝试登录、注册或完成结帐之外,我已经设法让一切正常工作——基本上与身份有关。
我不断收到的错误是:
或者
作为该过程的一部分,我创建了自己的自定义 AspNet 身份表(AspNetRoles、AspNetUserClaims、AspNetUserLogins、AspNetUserRoles、AspNetUsers)
当我说自定义时,除了 AspNetUsers 表之外,它们都遵循标准化的默认格式,其中包含一些额外的新字段。尽管如此,它们还是像这样被输入到项目中:
根据我的尝试,对于我觉得奇怪的同一字段,无效的列名错误最多可能出现三次。
我查看了在 UserManager 中生成的 SQL 查询字符串,这就是它返回的内容:
如您所见,它正在寻找一个名为“IdentityUser_UserId”的列,该列不存在。该字段实际上是“Id”。
任何帮助或建议将不胜感激。这让我发疯了。
c# - 实体框架 - Fluent API - 创建奇怪的列 PK : FK FK
我的项目是Database First,我使用的是 Entity Framework 6.2.0。
所以我在简单的插图中有以下类:
现在,当使用以下代码时,它会通过我“无效列名'Area2_ID'”的内部异常。
我已经阅读了其他用户关于这个问题的一些信息,问题应该出在(自动生成的)OnModelCreating中。
无论出于何种原因在代码中使用 EF 并创建一个新的区域对象,它不仅会显示“ID”-属性,还会显示“区域 1”-和“区域 2”-属性。
问题 我必须如何处理?“Area1_ID”和“Area2_ID”列仅存在于 EF 中,而不存在于数据库中。我可以删除这些属性或其他东西来防止我的异常吗?
编辑:我的模型: