با سلام
نوشته شده توسط
majid325
نه فکر میکنم یه جای کار شما مشکل داره!!
5 ، 6 ثانیه کانکت شدن !!! میتونید اون قسمت از کد که 5 ، 6 ثانیه زمان میبره رو بزارین؟
من موقع استفاده از EF یک Class Library جدید به پروژه اضافه کرده و یک ADO.NET Entity DataModel به Class Library اضافه کرده و جدولهای دیتا بیس خودم را از طریق ویزارد اضافه می کنم و نام کانکشن ConnDB می ذارم و پروژه را Build میمنم و dll تولید شده را تو پروژه خودم اضافه می کنم و بعد تو پروژه اصلی این کارها را انجام می دم مثلا ما تو دیتابیس مون یه جدول به نام Check داریم اول یک کلاس به صورت زیر اضافه می کنم
public class CheckCollection : ObservableCollection<Check>
{
private Conn_DB _Context;
public Conn_DB Context
{
get { return _Context; }
}
public CheckCollection(IEnumerable<Check> ModelObject, Conn_DB context)
: base(ModelObject)
{
_Context = context;
}
protected override void InsertItem(int index, Check item)
{
this.Context.AddToCheck(item);
base.InsertItem(index, item);
}
protected override void RemoveItem(int index)
{
this.Context.DeleteObject(this[index]);
base.RemoveItem(index);
}
}
بعد تو کد XAML مربوط به Window بک CollectionViewSource ایجاد کرده و اون را به دیتاگرایدم بایند می کنم که به صورت زیر است
<Window ....>
<Window.Resources>
<CollectionViewSource x:Key="Check_ViewSource" /></Window.Resources>
<DataGrid Name="Check_DataGrid"
.. ItemsSource="{Binding Source={StaticResource Check_ViewSource}}">
بعد تو code behind مربوط به Window کد زیر را قرار می دم
public partial class Win_Check: Window
{
private Conn_DB Conn_DataModel;
private ListCollectionView View;
private Check_Collection Check_Data;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Conn_DataModel=new Conn_DB();
var check_ViewSource = ((CollectionViewSource)(this.FindResource("Check_ViewSource")));
var query = (from c in Conn_DataModel.Check
select c).ToList();
Check_Data = new Check_Collection(query, Conn_DataModel);
check_ViewSource.Source =Check_Data;
this.View = ((ListCollectionView)(check_ViewSource.View));
}
اگر این کد ایراد داره و باعث می شه که برای اولین بار کانکت من زیاد طول بکشه ممنون می شم راهنماییم کنید با تشکر