PDA

View Full Version : حرفه ای: ایجاد app.config در چندلایه ای با entity



wolf_majid
پنج شنبه 10 مهر 1393, 16:04 عصر
سلام دوستان
من موقعیکه فایل app.config را در DAL ایجاد میکنم متد زیر بهم خطا میده
/// <summary>
/// تنظیم کانکشن
/// </summary>
/// <param name="con"></param>
public static void SetSqlConnection(string con)
{
var settings = ConfigurationManager.ConnectionStrings["MYDBEntities"];
var fi = typeof(ConfigurationElement).GetField("_bReadOnly",
BindingFlags.Instance | BindingFlags.NonPublic);
if (fi != null) fi.SetValue(settings, false);
settings.ConnectionString = con;
}
دلیلش هم اینه که settings برابر با nullه .

فایل app.config :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MYDBEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=System.Data.SqlClient;provide r connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=E:\MehrCom panyPrject\MehrCompanyPrject\MYDB.mdf;integrated security=True;MultipleActiveResultSets=True;App=En tityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>

اما زمانیکه فایل app.config را به لایه UI میبرم , خطا در جای دیگه و بروش دیگه صادر میشه
خطا در زمان اجرا و به عنوام مثال هنگام فراخوانی متد زیر رخ میده :
/// <summary>
/// مشتریان را بر اساس اینکه مشتری ما هستند یا نه برمیگرداند
/// </summary>
/// <param name="entities"></param>
/// <param name="value"></param>
/// <param name="isReverse"></param>
/// <returns></returns>
public static IQueryable<PersonAndCompany> SelectFromIsourcustomer(/*MYDBEntities entities,*/ bool? value, bool isReverse = false)
{
var pc = new PersonAndCompany { IsOurCustomer = value };
var result = Select(/*entities,*/ FieldForSearch.IsOurCustomer, pc);
return !isReverse ? result : SelectAll(/*entities*/).Except(result);
}

متن خطا :
The specified LINQ expression contains references to queries that are associated with different contexts.


همونطور که می بینید پارامتر اول متد کامنت شده
اما اگر اون رو از کامنت در بیارم و توی لایه UI اون رو مقداردهی کنم با هیچ خطایی مواجه نمیشم و برنامه به خوبی کار میکنه

اما جداسازی لایه ها به خوبی صورت نمی پذیره
به نظرتون چکار کنم ؟

wolf_majid
جمعه 11 مهر 1393, 00:25 صبح
کسی نظری نداره ؟
سوالم تکراریه ؟
سوالم نا مفهومه ؟

ممنون میشم راهنمایی کنید

wolf_majid
یک شنبه 13 مهر 1393, 10:36 صبح
شما موقع استفاده از entity چطور ارتباط DAL با بقیه لایه ها رو قطع می کنید(طوریکه فقط متدها و پروپرتی ها در دسترس سایر لایه ها باشند نه خود context) ؟