PDA

View Full Version : سوال: انتخاب random یک مقدار بعد از 30 روز با linq



omid_kimia
سه شنبه 23 فروردین 1390, 09:53 صبح
سلام
با استفاده از کد زیر یک مقدار random انتخاب میکنم.آیا امکان انتخاب random بعد از 30 روز هست؟؟
از مطالبی که آقای رضیئی برای linq (http://barnamenevis.org/showthread.php?193300-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-LINQ-%28%D8%A7%D8%B2-%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7-%D8%AA%D8%A7-%D8%A7%D9%86%D8%AA%D9%87%D8%A7%29) گذاشتن استفاده کردم.ممنون میشم راهنماییم کنید از چه شرطی برای این کار استفاده کنم.با تشکر

var quary = (from en in ctx.tbl_draws orderby en.random
select new{ مشخصات = en.name_family,سریال = en.serial}).Take(3);

raziee
سه شنبه 23 فروردین 1390, 10:22 صبح
سلام
با استفاده از کد زیر یک مقدار random انتخاب میکنم.آیا امکان انتخاب random بعد از 30 روز هست؟؟
از مطالبی که آقای رضیئی برای linq (http://barnamenevis.org/showthread.php?193300-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-LINQ-%28%D8%A7%D8%B2-%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7-%D8%AA%D8%A7-%D8%A7%D9%86%D8%AA%D9%87%D8%A7%29) گذاشتن استفاده کردم.ممنون میشم راهنماییم کنید از چه شرطی برای این کار استفاده کنم.با تشکر

var quary = (from en in ctx.tbl_draws orderby en.random
select new{ مشخصات = en.name_family,سریال = en.serial}).Take(3);

یعنی چی 30 روز؟
این 30 روز کجاست؟

اگه منظورتون این هست که شما بر حسب اتفاق رکورد هایی رو بازیابی میکنید و نمیخواهید که تا 30 رو رکورد های بازیابی شده دوباره بازیابی بشند:
باید هر رکورد رو که به صورت اتفاقی انتخاب میشن رو در یک Table دیگه نگهداری کنید(به همراه تاریخ ثبت) و در نهایت کوئری خواهید نوشت که رکورد هایی را برگشت دهد که مثلا ID آنها در جدول دوم وجود نداشته باشد.(Select از جدول دوم هم دارای شرط زمان 30 روز هست).

منظورتون رو درست متوجه شدم؟

omid_kimia
سه شنبه 23 فروردین 1390, 10:43 صبح
یعنی چی 30 روز؟
این 30 روز کجاست؟

اگه منظورتون این هست که شما بر حسب اتفاق رکورد هایی رو بازیابی میکنید و نمیخواهید که تا 30 رو رکورد های بازیابی شده دوباره بازیابی بشند:
باید هر رکورد رو که به صورت اتفاقی انتخاب میشن رو در یک Table دیگه نگهداری کنید(به همراه تاریخ ثبت) و در نهایت کوئری خواهید نوشت که رکورد هایی را برگشت دهد که مثلا ID آنها در جدول دوم وجود نداشته باشد.(Select از جدول دوم هم دارای شرط زمان 30 روز هست).

منظورتون رو درست متوجه شدم؟
سلام
میخوام هر 30 روز یکبار 3 مقدار جدید به صورت اتفاقی بازیابی بشه و اطلاعاتی که قبلا بازیابی شدن دیگه انتخاب نشن.
2-آیا امکانش هست بعد از هربازیابی کل اطلاعات قبلی پاک کنیم؟یا اونایی که بازیابی شدن دیگه انتخاب نشه.؟؟
یجا از مطالبتون در مورد linq گفته بودین که runtime>90 از این دستور استفاده کردم ولی به نتیجه ای نرسیدم.
ودر مورد اینکه اطلاعاتی که بازیابی شدن دیگه انتخاب نشن از filtering میشه استفاده کرد؟

raziee
سه شنبه 23 فروردین 1390, 10:57 صبح
سلام
میخوام هر 30 روز یکبار 3 مقدار جدید به صورت اتفاقی بازیابی بشه و اطلاعاتی که قبلا بازیابی شدن دیگه انتخاب نشن.
2-آیا امکانش هست بعد از هربازیابی کل اطلاعات قبلی پاک کنیم؟یا اونایی که بازیابی شدن دیگه انتخاب نشه.؟؟
یجا از مطالبتون در مورد linq گفته بودین که runtime>90 از این دستور استفاده کردم ولی به نتیجه ای نرسیدم.
ودر مورد اینکه اطلاعاتی که بازیابی شدن دیگه انتخاب نشن از filtering میشه استفاده کرد؟

شما اطلاعاتی رو که بازیابی میکنید رو در یک جدول بنویسید(منظورم کلید کجدول اول در جدول دوم هست).
در نهایت هم با یک کوئری میتونید به نتیجه برسیسد.

میخوام هر 30 روز یکبار 3 مقدار جدید به صورت اتفاقی بازیابی بشه
اگه میخواهید این 30 روز به صورت اتوماتیک باشه میتونید از Task ها استفاده کنید.

یجا از مطالبتون در مورد linq گفته بودین که runtime>90 از این دستور استفاده کردم ولی به نتیجه ای نرسیدم.
؟؟؟؟ در اون مطلب runtime یک Property بوده!!!!!!!!!!!!!!!!!

ودر مورد اینکه اطلاعاتی که بازیابی شدن دیگه انتخاب نشن از filtering میشه استفاده کرد؟
بله!!
باید فیلتر بشن. و شرط این فیلتر نبودن در جدول دوم هست.

omid_kimia
سه شنبه 23 فروردین 1390, 11:06 صبح
اگه میخواهید این 30 روز به صورت اتوماتیک باشه میتونید از Task ها استفاده کنید.
باید فیلتر بشن. و شرط این فیلتر نبودن در جدول دوم هست.
اگه امکانش هست یه مثال کوچیک در مورد task و filtering بزنید.با تشکر

raziee
سه شنبه 23 فروردین 1390, 13:20 عصر
اگه امکانش هست یه مثال کوچیک در مورد task و filtering بزنید.با تشکر
Task که مربوط به این تاپیک نمیشه ، جستجو کنید.
اما این لینک (http://programminglinq.com/blogs/marcorusso/archive/2008/01/14/the-not-in-clause-in-linq-to-sql.aspx) رو ببینید تا کوئری مربوطه رو بتونید بنویسید.

omid_kimia
سه شنبه 23 فروردین 1390, 14:18 عصر
Task که مربوط به این تاپیک نمیشه ، جستجو کنید.
اما این لینک (http://programminglinq.com/blogs/marcorusso/archive/2008/01/14/the-not-in-clause-in-linq-to-sql.aspx) رو ببینید تا کوئری مربوطه رو بتونید بنویسید.
کدمو به شکل زیر تغییر دادم ولی هیچ خروجی نداره بنظرتون کد درسته.

var quary = (from en in ctx.tbl_draws
orderby en.random
where !(from o in ctx.tbl_draws
select o.serial)
.Contains(en.serial)
select new{ مشخصات = en.name_family,سریال = en.serial}).Take(3);
foreach (var en in quary)
{

}
//quary.Distinct();

tbl_draw[] quary = quary.ToArray<tbl_draw>();
GridView1.DataSource = quary;
GridView1.DataBind();