Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

EF5 का उपयोग करके रिकॉर्ड की अनुपस्थिति के लिए कई से कई लोगों को कैसे क्वेरी करें?

प्रश्न में पोस्ट किए गए मूल रूप से वही प्रश्न बनाने के लिए आप ईएफ का उपयोग कर सकते हैं। मैंने गुणों के साथ एक पोको मॉडल कर्मचारी विशेषाधिकार बनाकर शुरू किया:int प्रिविलेजिड और इंट कर्मचारी आईडी। मैंने इसे DbContext में नहीं जोड़ा।

var EmpPrivQuery = ctx.Privileges
                       .Where(p => p.PrivilegeName == "P3")
                       .SelectMany(p => p.Employees, (p, e) => new EmployeePrivilege{EmployeeID = e.EmployeeID, PrivilegeID = p.PrivilegeID}
                       .Distinct();

var employeesMissingPrivilege = from e in Employees
                                join epq in EmpPrivQuery
                                on e.EmployeeID equals epq.EmployeeID
                                into jointable
                                where jointable.Count()==0
                                select e;

मैंने अभी महसूस किया है कि आप पोको एम्प्लॉई प्रिविलेज बनाए बिना भी वही परिणाम प्राप्त कर सकते हैं:

var EmpPrivQuery = ctx.Privileges
                        .Where(p => p.PrivilegeName == "P3")
                        .SelectMany(p => p.Employees.Select(e => e.EmployeeID)
                        .Distinct();

var employeesMissingPrivilege = from e in Employees
                                join epq in EmpPrivQuery
                                on e.EmployeeID equals epq
                                into jointable
                                where jointable.Count()==0
                                select e;

ये दोनों EF क्वेरी कर्मचारियों को Sql सर्वर और Oracle (Oracle के लिए Devart's dotConnect का उपयोग करके) के खिलाफ निर्दिष्ट विशेषाधिकारों को याद करती हैं।

मेरे द्वारा पढ़ी गई कई पोस्ट DefaultIfEmpty() . का उपयोग करने के लिए संदर्भित हैं बाएं बाहरी जुड़ाव प्राप्त करने के लिए। हालांकि, ऊपर दिए गए प्रश्न काम करते हैं, कृपया पोस्ट करें कि क्या इस परिणाम के लिए DefaultIfEmpty() का उपयोग करने का कोई बेहतर तरीका है। .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP से Oracle संग्रहीत कार्यविधि को कॉल करें

  2. संग्रहीत कार्यविधि में IN खंड में अल्पविराम से अलग की गई संख्या पास करें

  3. ORACLE में XMLTYPE को VARCHAR में कैसे बदलें?

  4. दो स्तंभों का उपयोग करके डेटा का पिवट करना

  5. तालिका में अंतिम और दूसरी अंतिम प्रविष्टि के मूल्यों की तुलना कैसे करें?