問題タブ [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# - サブクラスで識別子プロパティを設定する - Entity Framework
次の問題があります。Entity Framework で TPH 継承を構築していますが、サブクラスの既存のプロパティに識別子列を設定する必要があります。例:
そのため、すべての建物には BuildingType プロパティが必要であり、BuildingType クラスにはプロパティ Category (既に存在する) があり、建物の TPH 継承の識別子となる可能性があります。どうすればこれを達成できますか?
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' 型の null 以外の値に設定する必要があります。
スキーマを型から型に変更すると、それが機能することがわかってい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[タイプ 'CodeFirstDatabaseSchema.ApplicationUser' のメンバー 'Password' の Nullable=True,DefaultValue=,MaxLength=8000,FixedLength=False]'。
c# - 接続されたテーブルのカスケード削除
私は EF 6 を使用して MS SQL Server でデータベースを開発しています - Code First 私は次のようなスキーマを持っています: Ads|Messages|Attachments
どこ
広告には多くのメッセージがあります 広告には多くの添付ファイルがあります
メッセージには多くの添付ファイルがあります
Attachments テーブルには 2 つの FK があり、1 つは広告用、もう 1 つはメッセージ用です。Messages テーブルには、Ads への 1FK があります。
広告を削除すると、この広告のすべてのメッセージとその添付ファイル (メッセージ添付ファイル) および広告の添付ファイルが削除されるカスケード ルールを作成したいのですが、これまでのところ失敗しています。
私は得る
テーブル 'Attachments' に FOREIGN KEY 制約 'FK_dbo.Attachments_dbo.Messages_MessageId' を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更します。
制約またはインデックスを作成できませんでした。以前のエラーを参照してください。
ModelBuilder コードは次のとおりです。