gpt4 book ai didi

asp.net-mvc - 数据库优先 - EntityType xxx 没有定义键。定义此 EntityType 的键

转载 作者:行者123 更新时间:2023-12-04 09:11:04 25 4
gpt4 key购买 nike

我有 80 个表的数据库(每个表都有主键)。我已经从数据库(添加 - 新项目 - ADO.NET 实体数据模型)在 ASP.NET MVC 项目中生成了模型。但是在生成的模型中,我有 80 个类(对于数据库中的每个表)没有属性 [Key] 例如:

//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Blog.Models
{
using System;
using System.Collections.Generic;

public partial class Comments
{
public int CommentId { get; set; }
public string Content { get; set; }
}
}

所以我有错误:
EntityType xxx 没有定义键。定义此 EntityType 的键。

我经常在项目中更改数据库然后模型所以 我不能每次都将 [Key] 属性添加到 80 个 AUTOGENERATED 类 - 我能做什么??

最佳答案

我遇到了同样的问题,并通过将 [Key] 属性添加到每个类中来解决它,但为了避免手动执行此操作,我修改了用于生成每个类的 .tt 文件。我在循环中添加了一个 if 条件,该循环遍历类的每个简单属性。它在每个主键字段之前添加字符串“[Key]”。如果您有一个包含多个字段组成 PK 的表,那么您必须为此手动添加属性 ([Key, Column(Order = 0)]) 或进一步更新 .tt 文件(我太懒了因为到目前为止我只有一张带有复合键的表)。完成后,我保存了 .tt 文件,它重新生成了我的所有类,这些错误就消失了。

foreach (var edmProperty in simpleProperties)
{
if (ef.IsKey(edmProperty)) {
#> [Key]
<# }

关于asp.net-mvc - 数据库优先 - EntityType xxx 没有定义键。定义此 EntityType 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com