লিনাক সিনট্যাক্স - একাধিক কলাম নির্বাচন করা


98

এটি আমার লিনাক সিনট্যাক্স যা আমি আমার সত্তার মডেলটিতে ব্যবহার করছি

IQueryable<string> objEmployee = null;

objEmployee = from res in _db.EMPLOYEEs
              where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
              select res.EMAIL;

আমি কীভাবে একাধিক কলাম নির্বাচন করতে পারি? আমি res.ID পাশাপাশি নির্বাচন করতে চাই। এবং আমি কীভাবে সেগুলি গ্রহণ করতে পারি? আইকিউয়েরেবল কাজ করবে না বলে আমি মনে করি। এবং এটিকে লিঙ্ক থেকে এসকিউএল বলা হয় - তাই না?


4
লিনকটোসকিএল এবং সত্তার কাঠামো আলাদা। দেখুন stackoverflow.com/questions/8676/...
গিদিয়োন

উত্তর:


191

অন্যান্য উত্তরগুলি যেমন নির্দেশ করেছে, আপনাকে একটি বেনামি প্রকার ব্যবহার করতে হবে।

যতক্ষণ সিনট্যাক্স সম্পর্কিত, আমি ব্যক্তিগতভাবে পদ্ধতি শৃঙ্খলা পছন্দ। সমান শৃঙ্খলাবদ্ধ পদ্ধতিটি হ'ল: -

var employee = _db.EMPLOYEEs
    .Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo)
    .Select(x => new { x.EMAIL, x.ID });

আফাইক, ডিক্লেয়ারেশনাল লিনকিউ সিনট্যাক্সটি সংকলিত হয়ে গেলে এটির মতো একটি পদ্ধতি কল চেইনে রূপান্তরিত হয়।

হালনাগাদ

আপনি যদি পুরো অবজেক্টটি চান, তবে আপনাকে কেবল কলটি বাদ দিতে হবে Select(), অর্থাত্‍

var employee = _db.EMPLOYEEs
    .Where(x => x.EMAIL == givenInfo || x.USER_NAME == givenInfo);

72

আপনি উদাহরণস্বরূপ বেনামে প্রকারগুলি ব্যবহার করতে পারেন:

  var empData = from res in _db.EMPLOYEEs
                where res.EMAIL == givenInfo || res.USER_NAME == givenInfo
                select new { res.EMAIL, res.USER_NAME };

কীভাবে এই অভিব্যক্তিটি সঠিকভাবে লিখবেন তা আপনি পরামর্শ দিতে পারেন: নতুন select (ডেটটাইম.নিউ - debtণ.ক্লেইমডেট), .ণ.অ্যামাউন্ট select নির্বাচন করুন; ? এটি একটি ত্রুটি ছুঁড়েছে: অবৈধ নামবিহীন ধরণের সদস্য ঘোষক
ডেইনিয়াস ক্রেইভিস

4
@DainiusKreivys select new { Diff = (DateTime.Now - debt.ClaimDate), Amount = debt.Amount}। উত্তরে ব্যবহৃত ফর্মটি একটি শর্টহ্যান্ড, যেখানে প্রারম্ভিককরণের এক্সপ্রেশনটিতে সদস্যের নাম বেনামি টাইপের ক্ষেত্রের নাম হিসাবে ব্যবহৃত হয়। যেমন new {res.EMAIL, res.USER_NAME}একটি সংক্ষিপ্তকরণ new {EMAIL = res.EMAIL, USER_NAME = res.USER_NAME}। আপনার ক্ষেত্রে যেমন তারিখগুলি রয়েছে তেমন কোনও অভিব্যক্তি রয়েছে - শর্টহ্যান্ড প্রযোজ্য নয়, তাই সংকলক ত্রুটি।
ইভান ডানিলভ

5
 var employee =  (from res in _db.EMPLOYEEs
 where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
 select new {res.EMAIL, res.USERNAME} );

অথবা আপনি ব্যবহার করতে পারেন

 var employee =  (from res in _db.EMPLOYEEs
 where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
 select new {email=res.EMAIL, username=res.USERNAME} );

ব্যাখ্যা:

  1. Res হিসাবে ডিবি থেকে কর্মচারী নির্বাচন করুন।

  2. শর্ত অনুসারে কর্মচারীর বিশদ ফিল্টার করুন।

  3. নতুন {using ব্যবহার করে একটি অনামিক বস্তু তৈরি করে কর্মচারী অবজেক্ট থেকে প্রয়োজনীয় ক্ষেত্রগুলি নির্বাচন করুন


উত্তরে ব্যাখ্যা যোগ করুন।
সন্দীপ

আপনি কীভাবে বিভিন্ন কলামগুলি অ্যাক্সেস করতে পারেন?
এরিডিডার 101
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.