ورود

View Full Version : ایجاد دو view در EntityFramework و سی شارپ



king_programmer
سه شنبه 29 اردیبهشت 1394, 01:14 صبح
با سلام و احترام؛
من میخوام لغات دو کتاب رو از یک جدول باهم مقایسه کنم.یعنی بگم که لغات مشترک از کتاب ها هر کدام در یک ردیف و لغات موجود در کتاب اول که در کتاب دوم نیست و لغات موجود در کتاب دوم که در کتاب اول نیست را جمعا به صورت گروه شده در گرید ویو نشون بده.
کتاب اول = A
کتاب دوم = B
یعنی (A اشتراک B) اجتماع (A - B) اجتماع (B – A)
این کار رو میخام با استفاده از EntityFramework(lambda انجام بدم.
ستون های جدولم هم به این صورت هست.

آی دی کتاب که اشاره به کتاب میکنه.
نام لغت که باید برای هر کتاب بررسی بشه و به صورت گروپ بای به گرید ویو ریخته بشه.
ممنون میشم راهنماییم کنید.

king_programmer
سه شنبه 29 اردیبهشت 1394, 22:44 عصر
با سلام و احترام؛
من میخوام لغات دو کتاب رو از یک جدول باهم مقایسه کنم.یعنی بگم که لغات مشترک از کتاب ها هر کدام در یک ردیف و لغات موجود در کتاب اول که در کتاب دوم نیست و لغات موجود در کتاب دوم که در کتاب اول نیست را جمعا به صورت گروه شده در گرید ویو نشون بده.
کتاب اول = A
کتاب دوم = B
یعنی (A اشتراک B) اجتماع (A - B) اجتماع (B – A)
این کار رو میخام با استفاده از EntityFramework(lambda انجام بدم.
ستون های جدولم هم به این صورت هست.

آی دی کتاب که اشاره به کتاب میکنه.
نام لغت که باید برای هر کتاب بررسی بشه و به صورت گروپ بای به گرید ویو ریخته بشه.
ممنون میشم راهنماییم کنید.

یعنی کسی نیست که جواب سوال رو بدونه؟ ممنون میشم اگه کسی راهنماییم کنه.

SabaSabouhi
چهارشنبه 30 اردیبهشت 1394, 08:19 صبح
یعنی کسی نیست که جواب سوال رو بدونه؟ ممنون میشم اگه کسی راهنماییم کنه.

سلام
دوست عزیز، پرسش رو شفاف مطرح نکردی، من دو بار متن رو خوندم، اما سر در نیاوردم.

صبا صبوحی

king_programmer
پنج شنبه 31 اردیبهشت 1394, 00:28 صبح
ممنون از پاسخ شما.بزارید یه جور دیگه بگم.من میخام دستور زیر رو در entity framework پیاده کنم.


SELECT View_1.cnt1, View_1.WordText AS WordText1, View_1.WordTypeID AS WordTypreID1, View_2.cnt2, View_2.WordText AS WordText2, View_2.WordTypeID FROM View_1 FULL OUTER JOIN View_2 ON View_1.WordTypeID = View_2.WordTypeID AND View_1.WordText = View_2.WordText


خودم این دستور رو نوشتم.ولی نمیدونستم چطوری در join دوفیلد را مورد بررسی قرار بدم و فقط یکی از فیلدها رو نوشتم.


var q = (from doc1 in documentDetail1

join doc2 in documentDetail2 on doc1.WordText equals doc2.WordText

select new { wt1=doc1.WordText, wti1=doc1.WordTypeID,cnt1=doc1.cnt1, wt2=doc2.WordText, wti2=doc2.WordTypeID,cnt2=doc2.cnt1 });

SabaSabouhi
پنج شنبه 31 اردیبهشت 1394, 00:47 صبح
ممنون از پاسخ شما.بزارید یه جور دیگه بگم.من میخام دستور زیر رو در entity framework پیاده کنم.


SELECT View_1.cnt1, View_1.WordText AS WordText1, View_1.WordTypeID AS WordTypreID1, View_2.cnt2, View_2.WordText AS WordText2, View_2.WordTypeID FROM View_1 FULL OUTER JOIN View_2 ON View_1.WordTypeID = View_2.WordTypeID AND View_1.WordText = View_2.WordText


خودم این دستور رو نوشتم.ولی نمیدونستم چطوری در join دوفیلد را مورد بررسی قرار بدم و فقط یکی از فیلدها رو نوشتم.


var q = (from doc1 in documentDetail1

join doc2 in documentDetail2 on doc1.WordText equals doc2.WordText

select new { wt1=doc1.WordText, wti1=doc1.WordTypeID,cnt1=doc1.cnt1, wt2=doc2.WordText, wti2=doc2.WordTypeID,cnt2=doc2.cnt1 });


سلام
این‌طور که فهمیدم شما می‌خوای دو تا فیلد رو توی Join داشته باشی.
اگه منظورت این هست به این صورت باید عمل کنی.


var list = dbContext.Table1.Where ( Table1Condition )
.Join ( dbContext.Table2.Where ( Table2Condition )
, t1=> new { t1.Column1, t1.Column2 }
, t2=> new { t2.Column1, t2.Column2 }
, ( t1, t2 ) => new { t1, t2 } )
.ToList();


کافیه بجای نوشتن t1=>t1.Column1 از یک Anonymous Type استفاده کنی که دو تا فیلد رو در بر می‌گیره.


صبا صبوحی

king_programmer
جمعه 01 خرداد 1394, 00:58 صبح
سلام
این‌طور که فهمیدم شما می‌خوای دو تا فیلد رو توی Join داشته باشی.
اگه منظورت این هست به این صورت باید عمل کنی.


var list = dbContext.Table1.Where ( Table1Condition )
.Join ( dbContext.Table2.Where ( Table2Condition )
, t1=> new { t1.Column1, t1.Column2 }
, t2=> new { t2.Column1, t2.Column2 }
, ( t1, t2 ) => new { t1, t2 } )
.ToList();


کافیه بجای نوشتن t1=>t1.Column1 از یک Anonymous Type استفاده کنی که دو تا فیلد رو در بر می‌گیره.


صبا صبوحی

سلام بازم ممنون.ولی این دستور شما فیلدهای مشترک رو میاره(inner join).من میخام که دستور full outer join رو بر روی دو فیلد پیاده کنم.یه سری منبع انگلیسی پیدا کردم ولی چیزی نفهمیدم.شما میتونید دقیقا دستور زیر رو پیاده کنید؟




SELECT * FROM table_1 FULL OUTER JOIN table_2 ON table_1 .column1 = table_2 .column1 and table_1 .column2 = table_2.column2

king_programmer
شنبه 02 خرداد 1394, 22:15 عصر
من میخوام اطلاعات یک جدول رو در دوصورت باهم join کنم.برای همین گفتم که از view استفاده میکنم.کد شما جواب نداد.
اگه لازمه که اطلاعات جدولم رو توضیح بدم.من با SqlDataCommand جوابمو گرفتم .فقط میخوام با Entity Framework این کد رو پیاده کنم.