0
عدم اعمال ِDateType و Schema از طریق FluentApi
سلام
من کد زیر را نوشته ام
using System.ComponentModel.DataAnnotations.Schema;
namespace Models.EntityModels.Date
{
public class User
{
public User()
{
}
internal class Cofiguration : System.Data.Entity.ModelConfiguration.EntityTypeCo nfiguration<User>
{
public Cofiguration()
{
ToTable("User", "Panel")
.HasKey(c => c.UserId)
;
Property(c => c.UserId)
.HasColumnOrder(0)
.HasDatabaseGeneratedOption(DatabaseGeneratedOptio n.Identity)
;
Property(c => c.UserName)
.HasColumnOrder(1)
.HasColumnName("UserName")
.IsUnicode(false)
.HasMaxLength(10)
.IsFixedLength()
.IsConcurrencyToken()
;
Property(c => c.Password)
.HasColumnOrder(2)
.HasColumnName("Password")
.IsUnicode(false)
.HasMaxLength(100)
.IsVariableLength()
;
Property(c => c.HashCode)
.HasColumnOrder(5)
.HasColumnName("HashCode")
.IsUnicode(false)
.HasMaxLength(50)
.IsVariableLength()
;
}
}
public int UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string HashCode { get; set; }
}
}
using System.Data.Entity;
using Models.EntityModels.Date;
namespace Models.Base
{
public class Context:DbContext
{
public Context()
{
}
public DbSet<User> Users { get; set; }
}
}
اما وقتی اطلاعات را در بانک ذخیر می کنم
DateType ستون UserName وPasswordوHashCode بصورت nvarchar(MAX) ذخیره میشود و همچنین Schema صورت dbo است در صورتی که باید nvarchar(MAX) نباشد و Schema هم بایدPanelباشد
برای حل این مشکل چکار باید کنم باتشکر
1 پاسخ
1
سلام و عرض ادب، داخل کلاس Context متدی هست به نام OnModelCreating که باید override کنید و داخلش map ای که نوشتید رو اضافه کنید:
public class Context : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configuration.Add(new Models.EntityModels.Date.User.Configuration());
}
}