PDA

View Full Version : سوال: مشكل در استفاده از stored procedure در Entity Framework



baran_bataravat
پنج شنبه 07 مهر 1390, 07:52 صبح
من يك procedure به شكل زير دارم:

Create PROCEDURE [dbo].[sp_IsToDetermine](@CurrentUser int)
AS
BEGIN
SET NOCOUNT ON

select ToDetermine from dbo.TRols where RolCode=(
select RolCode from TUserRols where UserCode=@CurrentUser )

END

حالا در برنامه اي كه از Entity Framwork استفاده كرم ميخوام فيلد ToDetermine كه از نوع bit مي باشد را در يك متغيير از bool بريزم.
اين تابعي هست كه داخل برنامه نوشتم الان مشكل من اين است كه نميدونم چطور جلوي return مقدار true يا false رو برگردونم:

public bool isresiver (int userCode)
{

DAL.TicketManagementEntities Cont = new DAL.TicketManagementEntities();
var ss = Cont.sp_IsToDetermine(userCode);
return ss
}

mehdi.mousavi
پنج شنبه 07 مهر 1390, 14:50 عصر
سلام.
ابتدا Model Browser رو باز کنید، سپس در بخش TicketManagementEntities، شاخه Function Imports رو باز کنید.
اونجا باید تابعی به اسم sp_IsToDetermine وجود داشته باشه. روی این تابع دو بار Click کنید تا پنجره Edit Function Import باز بشه.
در این پنجره، مطمئن بشید که Radio Button مربوط به Scalars روشنه و Boolean انتخاب شده...

سپس، دو خط آخر کدتون رو به این کد تغییر بدید:

return Cont.sp_IsToDetermine(userCode).SingleOrDefault() ?? false;

موفق باشید.

baran_bataravat
شنبه 09 مهر 1390, 10:02 صبح
من چطور مي تونم stored Procedure رو با توجه به اينكه در Mode Entity جدول TUserRols كه يك جدول مياني مي باشد آودره نمي شود با Entity Frmawork پياده كنم.

Create PROCEDURE [dbo].[sp_IsToDetermine](@CurrentUser int)
AS
BEGIN
SET NOCOUNT ON

select ToDetermine from dbo.TRols where RolCode=(
select RolCode from TUserRols where UserCode=@CurrentUser )

END

ممنون ميشم اگه كسي راهنمايي كند.