PDA

View Full Version : سوال: عدم اعمال ِDateType و Schema از طریق FluentApi



Iran58
دوشنبه 14 فروردین 1396, 12:17 عصر
سلام
من کد زیر را نوشته ام

using System.ComponentModel.DataAnnotations.Schema;

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باشد
برای حل این مشکل چکار باید کنم باتشکر

Mahmoud.Afrad
دوشنبه 14 فروردین 1396, 19:46 عصر
خب به چه صورت این تنظیمات بایست اعمال بشه؟!
در context ، متد OnModelCreating را override کنید و User.Cofiguration را در modelBuilder.Configurations ثبت کنید.