مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

استفاده از store procedure در entity framework

  • شنبه 13 تیر 1394
  • 19:34
تشکر میکنم

با سلام.

در entity framework چگونه از store procedure استفاده می کنیم؟

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

mrchsoft

عضویت از 1392/11/10

  • شنبه 13 تیر 1394
  • 20:49

می خای چی کار کنی .منظورم اینه پروسیجر ت چیکار می کنه.

 

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 13 تیر 1394
  • 21:22

insert,delete,update

کاربر سایت

mrchsoft

عضویت از 1392/11/10

  • شنبه 13 تیر 1394
  • 23:32

برای حذف از کد زیر استفاده می کنم :

sql:

ALTER PROCEDURE [dbo].[SP_ChartsInsert]
	-- Add the parameters for the stored procedure here
	@Name nvarchar(50), 
	@state bit,
	@val int output  	 
AS
BEGIN TRY
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	 if(exists(select ID from Cahrts where Name=@Name))
	  begin
	   set @val=-1
	  end
	 else
	  begin
	   insert into Cahrts (Name,[State])values(@Name,@state)
	   set @val=1
	  end
END TRY
BEGIN CATCH
 set @val=0
END CATCH

کد سی شارپ:

ObjectParameter obj = new ObjectParameter("val", typeof(int));

db = new MrchCmsDB();
            db.SP_ChartsState(id, obj);
            int result = int.Parse(obj.Value.ToString());
            db.Dispose();
            if (result == 1)
            {

                litalert.Text = Alert(new string[] { "success", "موفق", "عملیات ویرایش با موفقیت انجام شد" });
                LoadData();
            }
            else
            {
                litalert.Text = Alert(new string[] { "danger", "ناموفق", "عملیات ویرایش با موفقیت انجام نشد" });
                return;
            }

 

کاربر سایت

mrchsoft

عضویت از 1392/11/10

  • شنبه 13 تیر 1394
  • 23:34

در پرسیجر دو مقدار مشاهده می کنید که یکش ورودی و دیگری خروجی هست

ورودی  @ID

خروجی @val

اگر عملیات با موفقیت انجام شد مقادار @val  برابر  با 1 قرار می دهم اگر نشد برابر 0 یا -1 که مقدار -1  یعنی اینکه رکوورد برای حذف وجود ندارد

 

کاربر سایت

mrchsoft

عضویت از 1392/11/10

  • شنبه 13 تیر 1394
  • 23:38

و در کد C#:

ObjectParameter obj = new ObjectParameter("val", typeof(int));

این یک پارمتر که همان @val از نوع عدد هست که در پروسیجر موجود بود

MrchCmsDB نام مدل من هست

و حال

ا db.SP_ChartsState(id, obj);

که همان پروسیجر من هستش نوشتم دو تا مقدار

دارد که اولی Id یا سطر مورد نظرم و مقدار دوم

پارمتری که تعریف کردم

ObjectParameter obj = new ObjectParameter("val", typeof(int));

حالا مقدار obj رو بدست میارم و مثلا اگر برابر 1 بود یعنی موفق آمیز

بود در غیر این صورت نا موفق بوده

کاربر سایت

mrchsoft

عضویت از 1392/11/10

  • یکشنبه 14 تیر 1394
  • 00:00

حالا برای اینکه اطلاعات نمایش بدی یا بهتر بگم رکوردهاتو بدست بیاری:

var lst =db.SP_YourProsForSelect().Tolist()

حالا می تونی این لیست و بهاهاش کار کنی :مثلا ارتباط با gridview

gr

  db = new MrchCmsDB();
        var lst = db.SP_ChartsSelectAdmin().ToList();
        db.Dispose();
        grcahrts.DataSource = lst;
        grcahrts.DataBind();

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)