دسته بندی ها
10:25 1399/04/21

select کردن فیلد های خاص در Stored Procedure

مشخصات سوال کننده :
کاربر : Mahdi76     امتیاز کاربر : 2     رتبه کاربر : 145
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    ‎−3
تعداد بازدید این سوال : 3070
1 نظر
saedbfd : لطفا کدی که نوشتید یا جدولی که طراحی کردید رو قرار بدید

امتیاز کاربر : 1664   رتبه کاربر : 1   تاریخ ثبت : 03:03 1399/06/27
هوش مصنوعی

پاسخ هوش مصنوعی

برای حل این مشکل، شما باید مدل خود را طوری تنظیم کنید که فقط فیلدهایی که از stored procedure برمی گردند را شامل شود. اگر فیلد سومی که نایاب است را در مدل خود داشته باشید و سعی کنید آن را پر کنید، باعث ایجاد خطا می شود.

شما می توانید از DTO (Data Transfer Object) استفاده کنید. بدین صورت که یک مدل جدید ایجاد کنید که فقط فیلدهایی که می خواهید از stored procedure برگردانده شوند را شامل شود.

در ابتدا، مدل جدید خود را ایجاد کنید:

public class MyDto
{
    public int Field1 { get; set; }
    public string Field2 { get; set; }
}

سپس در stored procedure خود، تنها فیلدهای مورد نظر را انتخاب کنید:

CREATE PROCEDURE GetMyData
AS
BEGIN
    SELECT Field1, Field2 FROM MyTable
END

در نهایت، در کد .NET Core خود، استفاده از این DTO را به جای مدل اصلی تعریف کنید:

var result = await dbContext.MyDtos.FromSqlRaw("EXEC GetMyData").ToListAsync();

با این روش، شما فقط فیلدهایی که مورد نیاز است را دریافت می کنید و از خطاهای ناشی از فیلدهای اضافی جلوگیری می شود.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 17:02 1399/12/18

توضیحات شما خیلی ناقص هست. هیچ اشاره ای هم به خطایی که دارید نکردید. فیلدهایی که داری، کدهایی که نوشتید و خلاصه هیچی نگفتید!!!

اما لینک زیر رو بهتون پیشنهاد میکنم بخونید.

استفاده از Strored Procedure در انیتیتی فریم ورک Code First

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود