@ কোডডনটফাউন্ডের উত্তরে আপডেট করুন ।
EF- তে কোর 3.0 অবমূল্যায়ন DbQuery<T>
করা হয়েছে, পরিবর্তে আপনার চাবিহীন সত্তার প্রকারগুলি ব্যবহার করা উচিত যা সম্ভবত একই কাজ করে। এগুলি মডেলবিল্ডার HasNoKey()
পদ্ধতিতে কনফিগার করা আছে । আপনার ডিবি কনটেক্সট ক্লাসে এটি করুন
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<YourEntityType>(eb =>
{
eb.HasNoKey();
});
}
যদিও বিধিনিষেধগুলি রয়েছে:
- DbContext- এ পরিবর্তনের জন্য কখনই ট্র্যাক করা হয় না এবং তাই ডেটাবেজে inোকানো, আপডেট করা বা মোছা হয় না।
- কেবলমাত্র নেভিগেশন ম্যাপিংয়ের ক্ষমতাগুলির একটি উপসেট সমর্থন করুন, বিশেষত:
- তারা কখনও কোনও সম্পর্কের মূল প্রান্ত হিসাবে কাজ করতে পারে না।
- মালিকানাধীন সত্তায় তাদের নেভিগেশন নাও থাকতে পারে
- এগুলিতে কেবল নিয়মিত সত্তাকে নির্দেশ করে রেফারেন্স নেভিগেশন বৈশিষ্ট্য থাকতে পারে।
- সংস্থাগুলিতে কীবিহীন সত্তার ধরণের নেভিগেশন বৈশিষ্ট্য থাকতে পারে না।
এর অর্থ এটি যে প্রশ্নের জন্য
আমি যদি সেগুলি ব্যবহার করতে এবং ডেটা সংশোধন করতে চাই, তবে আমাকে অবশ্যই এই টেবিলগুলিতে একটি পিকে যুক্ত করতে হবে, বা আমার কোনও টান নেই?
আপনি এইভাবে ডেটা পরিবর্তন করতে পারবেন না - তবে আপনি পড়তে পারেন। ডেটা পরিবর্তনের জন্য অন্য কোনও উপায়ে (যেমন ADO.NET, Dapper) ব্যবহার করে কেউ কল্পনা করতে পারে - যদিও এটি আপনার ক্ষেত্রে খুব কম ক্ষেত্রে অপ্রত্যাশিত অপারেশন করার খুব কম প্রয়োজন এবং এখনও আপনার সংখ্যাগরিষ্ঠ ক্ষেত্রে EF কোরের সাথে লেগে থাকতে চান।
এছাড়াও, যদি আপনার হ্যাপ (কীলেস) টেবিলগুলি সহ সত্যই প্রয়োজন হয় / কাজ করতে চান - EF খনন বিবেচনা করুন এবং আপনার ডাটাবেসের সাথে কথা বলার জন্য অন্য উপায় ব্যবহার করুন।