PDA

View Full Version : سوال: به روز رسانی داده ها با entity framework



nunegandom
یک شنبه 10 شهریور 1392, 18:47 عصر
با درود بی پایان خدمت برنامه نویسان محترم
چطور توی entity framework داده ها رو بروز رسانی کنم؟

مهرداد صفا
یک شنبه 10 شهریور 1392, 20:15 عصر
با سلام.
دوست عزیز entity صرفا یک مدل برای استفاده از ado.net برای دسترسی به داده هاست و از آنجا که microsoft همیشه در جهت ساده تر کردن و حذف پیچیدگی های برنامه نویسی (در .net) حرکت می کند "یکی" از دلایل به وجود آمدن این مدل هم حذف tsql و در نتیجه برنامه نویسی Managed و ساده تر است؛ ولی اگر شما جایی با این مدل به مشکل برخوردید می توانید مستقیما از دستورات TSQL برای کنترل و دسترسی به داده ها استفاده کنید.
برای مثال با فرض اینکه پایگاه داده ما DataBase نام دارد و دارای یک جدول به نام words است برای update داده ها با استفاده از TSQL در Entity:

//بسم الله الرحمن الرحیم
//اللهم صل علی محمد و آل محمد

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.EntityClient;
using System.Data.SqlClient;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DataBaseEntities dataBase = new DataBaseEntities();
SqlConnection connection =(SqlConnection) (dataBase.Connection as EntityConnection).StoreConnection;
SqlCommand command = new SqlCommand("", connection);
connection.Open();
command.CommandText = "update words set extra ='NONE' where extra is null";
command.ExecuteNonQuery();
connection.Close();
dataGridView1.DataSource = dataBase.words;
}
}
}


و البته همین تغییر را می توانید با استفاده از Entity و به سادگی ایجاد کنید:

dataBase.words.Where(word => word.extra == "NONE").ToList().ForEach(word => word.extra = "--");
dataBase.AcceptAllChanges();

nunegandom
سه شنبه 12 شهریور 1392, 17:30 عصر
بسیار ممنون از راهنماییتون
اگه بخوام چندتا چیز رو بخوام به روز رسانی کنم چی؟ با entity میخوام البته... :)

مهرداد صفا
سه شنبه 12 شهریور 1392, 17:47 عصر
بسیار ممنون از راهنماییتون
اگه بخوام چندتا چیز رو بخوام به روز رسانی کنم چی؟ با entity میخوام البته... :)

خواهش می کنم.
اصل قضیه تفاوت چندانی نمی کند فقط:


dataBase.words.Where(word => word.extra == "NONE").ToList().ForEach(row=>{row.Field1=value1;row.Field2=row.Field1+n;row.Fie ld3=value3;});

pay_hossein
یک شنبه 22 دی 1392, 02:15 صبح
خواهش می کنم.
اصل قضیه تفاوت چندانی نمی کند فقط:


dataBase.words.Where(word => word.extra == "NONE").ToList().ForEach(row=>{row.Field1=value1;row.Field2=row.Field1+n;row.Fie ld3=value3;});

با سلام به شما ممنو از پاسختون فقی من یه سوال داشتم از حضورتون من یه Datagridview دارم که با entity پر شده حالا وقتی میخوام به دیتا بیس ام فیلد اضافه کنم در اضافه کردن اول مشکلی نیست ولی از دفعه دوم به مشکل میخورم .
لطفا راهنمایی کنید.
کد هایی که استفاده کردم رو میذارم.
Table add = new Table
{

username = username.Text,
code = code.Text,
bankname = bankname.Text,
bankuser = userbank.Text,
cost = cost.Text,
data = data.Text
};
database.Tables.Add(add);

database.SaveChanges();
dataGridView1.DataSource = database.Tables.ToList();