PDA

View Full Version : سوال: ساخت مدل EF بر اساس Object



sadaf_
یک شنبه 13 مرداد 1392, 22:58 عصر
وقتی مدل رو می سازم اون رو بر اساس DBContext تولید می کنه

public partial class MainDBEntities : DbContext


چطوری می شه کاری کرد که اون رو بر اساس Object بسازه؟

public partial class MainDBEntities : ObjectContext

sadaf_
یک شنبه 13 مرداد 1392, 23:48 عصر
یکی از دوستان وقتی مدلش رو ساخت بر اساس Object براش ساخت
ولی برای من DBContext می سازه!!

Sajjad.Aghapour
یک شنبه 13 مرداد 1392, 23:50 عصر
برای این کار دو راهکار پیش روی شماست:

از EntityObject Generator استفاده کنید
Code Generation Strategy رو در Properties مدلت به Default ست کنی

uniqueboy_ara
یک شنبه 13 مرداد 1392, 23:50 عصر
نه تنها این 2تا هیچ فرقی با هم ندارن بلکه DbContext کامل تر هم هست
ولی اگه اصرار به استفاده از ObjectContext دارید متونید از این روش استفاده کنید:

public class SchoolDBContext: DbContext, IObjectContextAdapter
{
ObjectContext IObjectContextAdapter.ObjectContext
{
get { return (this as IObjectContextAdapter).ObjectContext; }
}

}

sadaf_
یک شنبه 13 مرداد 1392, 23:53 عصر
میشه دلیلشم بفرمایید که چرا میخواید به جای DbContext از ObjectContext ارث بری کنید؟
برای استفاده از esql

sadaf_
دوشنبه 14 مرداد 1392, 00:00 صبح
نه تنها این 2تا هیچ فرقی با هم ندارن بلکه DbContext کامل تر هم هست
}

شما این دستور و در DBContext ندارید

System.Data.Objects.ObjectQuery<User> contacts = context.Users.Where("it.strName = 1");

sadaf_
دوشنبه 14 مرداد 1392, 00:03 صبح
برای این کار دو را***ار پیش روی شماست:


از EntityObject Generator استفاده کنید
Code Generation Strategy رو در Properties مدلت به Default ست کنی



من هم در Properties مدل و هم در خود dll اینها را پیدا نکردم
108525

Sajjad.Aghapour
دوشنبه 14 مرداد 1392, 00:06 صبح
نه تنها این 2تا هیچ فرقی با هم ندارن بلکه DbContext کامل تر هم هست
ولی اگه اصرار به استفاده از ObjectContext دارید متونید از این روش استفاده کنید:

public class SchoolDBContext: DbContext, IObjectContextAdapter
{
ObjectContext IObjectContextAdapter.ObjectContext
{
get { return (this as IObjectContextAdapter).ObjectContext; }
}

}

نیازی به ارث بری از IObjectContextAdapter در این مثال شما نیست. خود DbContext از این Interface ارث بری میکنه

uniqueboy_ara
دوشنبه 14 مرداد 1392, 00:08 صبح
وقتی Lambda هست، دیگه چه احتیاجی به این کارا هست؟؟؟؟
.
.
DBContext vs ObjectContexts (http://www.entityframeworktutorial.net/EntityFramework4.3/dbcontext-vs-objectcontext.aspx)

Sajjad.Aghapour
دوشنبه 14 مرداد 1392, 00:11 صبح
من هم در Properties مدل و هم در خود dll اینها را پیدا نکردم

را***ار اول رو می تونید در Model خود راست کلیک کرده و گزینه Add Code Generation Item و از پنجره باز شده در تب Online مورد ذکر شده رو جستجو کنید.
را***ار دوم رو می تونید در Model خود راست کلیک کنید و Properties رو انتخاب و خاصیت Code Generation Strategy رو به مقدار Default ست کنید.

uniqueboy_ara
دوشنبه 14 مرداد 1392, 00:13 صبح
نیازی به ارث بری از IObjectContextAdapter در این مثال شما نیست. خود DbContext از این Interface ارث بری میکنه

من این مطلبو از خودم ننوشتم، چون اصلا نیازی نمیبینم که آدم بخواد به عقب برگرده :لبخندساده:
آدرس منبع رو هم که با یه سرچ ساده به دست آورده بودم قرار دادم :لبخندساده:
.
.
از اینترفیس که ارث بری نمیکنن مهندس! اینترفیسو پیاده سازی می کنن :چشمک:

Sajjad.Aghapour
دوشنبه 14 مرداد 1392, 10:55 صبح
از اینترفیس که ارث بری نمیکنن مهندس! اینترفیسو پیاده سازی می کنن :چشمک:

بله در این مورد حق با شماست. بابت این اشتباه عذر میخوام.