من متد LoadEntiies رو بهصورت زیر تغییر دادم مشکل حل شد
از نظر من کد قبلی چندتا مشکل داشت
1- توی قسمت where یک بار baseType رو مخالف null و یک بار هم برابر null خواسته بود که این خودش باعث میشد تا کوئری گرفته شده مقداری رو برنگردونه
2- شرطی که نوشته شده بود اگه مشکل بالا رو حل میشد باعث میشد تمام Classها و Enumerationها و Object هایی که جزء entity نبود رو باخودش بیاره و به عنوان یک Entity معرفی کنه
3- اینکه توی شرط نوشته شده بود Namespace==nameSpace و این یعنی اگر فضای نام کلاسی مثلا برابر DomainClasses.Entities.Common بود، توی لیست entityهای آورده نشه
خلاصه اینکه کوئری قبلی هیچ چیزی رو برنمیگردوند
من با کد بالایی مشکلم رو حل کردم ولی فکرکنم کدی دوستان در پستهای قبلی گذاشتن بهتر باشه
private static void LoadEntities(Assembly asm, DbModelBuilder modelBuilder, string nameSpace) { var entityTypes = asm.GetTypes() .Where(type => type.BaseType != null && type.BaseType != Type.GetType("System.Enum") && type.Name != "Entity" && type.Name != "BaseEntity" && type.Namespace != null && type.Namespace.Contains(nameSpace)) .ToList(); entityTypes.ForEach(modelBuilder.RegisterEntityType); }
1- توی قسمت where یک بار baseType رو مخالف null و یک بار هم برابر null خواسته بود که این خودش باعث میشد تا کوئری گرفته شده مقداری رو برنگردونه
2- شرطی که نوشته شده بود اگه مشکل بالا رو حل میشد باعث میشد تمام Classها و Enumerationها و Object هایی که جزء entity نبود رو باخودش بیاره و به عنوان یک Entity معرفی کنه
3- اینکه توی شرط نوشته شده بود Namespace==nameSpace و این یعنی اگر فضای نام کلاسی مثلا برابر DomainClasses.Entities.Common بود، توی لیست entityهای آورده نشه
خلاصه اینکه کوئری قبلی هیچ چیزی رو برنمیگردوند
من با کد بالایی مشکلم رو حل کردم ولی فکرکنم کدی دوستان در پستهای قبلی گذاشتن بهتر باشه