私はEntity Frameworkで.net core(asp.net core)を使い始めました。C#Entity Framework(.Net Core)検証(サーバー側)
(asp.netとGraphQLを使用して)Webサービスを実装する予定です。 今、Entity Frameworkでの検証にRegularExpression属性を使用することは可能でしょうか。
しかし、これは無視されているようです。
このような属性で見つかったすべてのサンプルは、C#のクライアント側とサーバー側でした。
これは、このようなEF(serveides)で動作するはずですか?
大量のコードを書くことなくこの作業を行う簡単な方法はありますか?
PS:
:イムはPostgreSQLのはなぜBook.somethingための正規表現は、(:それは出会いだ場合、それはまた、発射いないPS)を満たしていない場合に例外をスローしませコードを以下れると「Microsoft.EntityFrameworkCore」を使用して
...
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
namespace aspPlainEF
{
public class Startup
{
EFCoreDemoContext ef = new EFCoreDemoContext();
...
public class Book
{
[Key]
public int Id { get; set; }
...
[Required]
[RegularExpression(@"^hello$", ErrorMessage = "You can not have that")]
public string something { get; set; }
}
public class EFCoreDemoContext : DbContext
{
public DbSet<Book> Books { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseNpgsql(...);
}
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.Run(async (context) =>
{
Book book = new Book();
...
book.something = "xxx";
ef.Add(book); ef.SaveChanges();
await context.Response.WriteAsync("hell1");
});
}
}
}
正規表現はASP .NET用のデータをincommingに適用される属性は、EFのエンティティの検証ではありません。自分のバリデータをリフレクションで書くことができます。独自の属性を作成し、その属性をクラスで検索して検証します(これは非常に概要ですが、そのアイデアははっきりしています)。 – Gusman
@Gusman少なくとも以前のバージョンでは、EFは検証属性を適用したエンティティを自動的に検証することを覚えていますか? https://msdn.microsoft.com/en-us/library/gg193959.aspxそれはまだ、コアになっていない可能性があります。 –
@AlexPavenまあ、それはあなたが正しいと思う、私は非常にEFと錆びている、私は自分自身をリサイクルする必要があります...(それは私が答えとしてそれを追加しなかった理由:/)。 – Gusman