.Net Core 1.1とEF Coreを使用してWeb APIを作成しました。バックエンドはMySQLデータベースなので、"MySql.Data.EntityFrameworkCore": "7.0.6-IR31" project.jsonファイルに依存しています。.Net Core/EFコアモデル(MySQLバックエンド)でデータ注釈が無視される
私のプロジェクトには単純なモデルがあります。モデルの列を既存のデータベースの列にマップしようとしています。だから私はデータ注釈を使用しています。
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%" ]
}
}
エンティティフレームワーク6のデータアクセスレイヤを使用して、ASP.NET Webフォームで同じ問題が発生しました。私は、コンソールランナーを介してデータアクセス層でテストし、context.Database.Log = s => System.Diagnostics.Debug.WriteLine(s)で作成されたSQLを出力するまで歩き回り、すべてが一致します。私はwebformアプリケーションを実行し、SQLはテーブル名としてクラス名を使用しようとし、テーブルが見つからないために失敗します。データアノテーションから流暢なAPIに変更しました。今はすべてが機能しています。私はEntityFrameworkCoreの問題であると思われます。 – Rourke