আমি বর্তমানে একটি প্রকল্পে কাজ করছি এটিই।
public interface IEntityMappingConfiguration<T> where T : class
{
void Map(EntityTypeBuilder<T> builder);
}
public static class EntityMappingExtensions
{
public static ModelBuilder RegisterEntityMapping<TEntity, TMapping>(this ModelBuilder builder)
where TMapping : IEntityMappingConfiguration<TEntity>
where TEntity : class
{
var mapper = (IEntityMappingConfiguration<TEntity>)Activator.CreateInstance(typeof (TMapping));
mapper.Map(builder.Entity<TEntity>());
return builder;
}
}
ব্যবহার:
আপনার প্রসঙ্গের অনমোডেল ক্রিয়েটিং পদ্ধতিতে:
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder
.RegisterEntityMapping<Card, CardMapping>()
.RegisterEntityMapping<User, UserMapping>();
}
ম্যাপিং ক্লাসের উদাহরণ:
public class UserMapping : IEntityMappingConfiguration<User>
{
public void Map(EntityTypeBuilder<User> builder)
{
builder.ToTable("User");
builder.HasKey(m => m.Id);
builder.Property(m => m.Id).HasColumnName("UserId");
builder.Property(m => m.FirstName).IsRequired().HasMaxLength(64);
builder.Property(m => m.LastName).IsRequired().HasMaxLength(64);
builder.Property(m => m.DateOfBirth);
builder.Property(m => m.MobileNumber).IsRequired(false);
}
}
ভিজ্যুয়াল স্টুডিও 2015 এর ভাঁজ আচরণের সুযোগ নিতে আমি আরও একটি জিনিস করতে চাই তা হ'ল 'ব্যবহারকারী' নামক একটি সত্তার জন্য, আপনি নিজের ম্যাপিং ফাইলটির নাম দিন 'ব্যবহারকারী.ম্যাপিং.সিএস', ভিজুয়াল স্টুডিও ফাইলটি সমাধান এক্সপ্লোরারটিতে ভাঁজ করবেন যাতে এটি সত্তা শ্রেণীর ফাইলের অন্তর্ভুক্ত থাকে।