gpt4 book ai didi

asp.net-mvc - .Net Core/EF Core 模型(MySQL 后端)中的数据注释被忽略

转载 作者:行者123 更新时间:2023-12-04 03:15:16 27 4
gpt4 key购买 nike

我使用 .Net Core 1.1 和 EF Core 创建了一个 Web API。后端是一个 MySQL 数据库,所以我在 project.json 文件中包含了 "MySql.Data.EntityFrameworkCore": "7.0.6-IR31" 依赖项。

我的项目中有一个简单的模型。我正在尝试将模型中的列映射到现有数据库中的列。所以我正在使用数据注释。我有这个:

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace PropWorxAPI.Models
{
[Table("files")]
public partial class File
{
[Key]
[Column("file_id")]
public int FileId { get; set; }
[Required]
[Column("file_num")]
[MaxLength(50)]
public string FileNum { get; set; }
[MaxLength(255)]
public string Description { get; set; }
}
}

我希望属性 FileId 映射到数据库中的字段 file_id。但是,当我运行该项目时,它会提示数据库中没有字段 FileId。就好像我的列映射注释被完全忽略了一样。有任何想法吗?谢谢...

以防万一,我在下面包含了我的 project.json 文件:

{
"dependencies": {
"MySql.Data.EntityFrameworkCore": "7.0.6-IR31",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"Microsoft.AspNetCore.Routing": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Logging": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.Extensions.Logging.Debug": "1.1.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
"Microsoft.NETCore.App": {
"version": "1.1.0",
"type": "platform"
}
},

"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
},

"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},

"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},

"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},

"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"web.config"
]
},

"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}

最佳答案

我也有这个问题,我能找到的唯一解决方案是使用流畅的 API 来定义映射而不是注释。例如

builder.Entity<Product>().ToTable("product").HasKey(m => m.Id);
builder.Entity<Product>().Property(p => p.DateAdded).HasColumnName("date_added");
builder.Entity<Product>().Property(p => p.ImageUrl).HasColumnName("image_url");

希望注释支持很快可用。

关于asp.net-mvc - .Net Core/EF Core 模型(MySQL 后端)中的数据注释被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41635815/

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