উত্তর:
মডেলটিকে সিঙ্কে রাখার জন্য তিনটি উপায় রয়েছে।
ডিজাইনার থেকে পরিবর্তিত টেবিলগুলি মুছুন এবং তাদের ডাটাবেস এক্সপ্লোরার থেকে ডিজাইনার পৃষ্ঠের দিকে আবার টেনে আনুন। আমি খুঁজে পেয়েছি যে, এটি নির্ভরযোগ্যভাবে কাজ করার জন্য আপনাকে:
ক। ডাটাবেস এক্সপ্লোরার ডাটাবেস স্কিমা রিফ্রেশ (ডান ক্লিক, রিফ্রেশ)
বি। টেবিলগুলি মুছে ফেলার পরে ডিজাইনার সংরক্ষণ করুন
। টেবিলগুলি আবার টেনে আনার পরে আবার সংরক্ষণ করুন।
মনে রাখবেন যে আপনি যদি কোনও বৈশিষ্ট্য সংশোধন করে থাকেন (উদাহরণস্বরূপ, কোনও সমিতির শিশু সম্পত্তি বন্ধ করে দেওয়া) তবে এটি স্পষ্টতই এই পরিবর্তনগুলি হারাবে - আপনাকে সেগুলি আবার তৈরি করতে হবে।
আপনার ডাটাবেস থেকে স্কিমাটি পুনঃজুনাতে এসকিউএল মেটাল ব্যবহার করুন। আমি বেশ কয়েকটি ব্লগ পোস্ট দেখেছি যা দেখায় যে এটি কীভাবে স্ক্রিপ্ট করা যায় ।
সরাসরি ডিবিএমএল এর বৈশিষ্ট্য ফলকে পরিবর্তন করুন। এটি ক্ষেত্রের নালার অনুমতি দেওয়ার মতো সাধারণ পরিবর্তনগুলির জন্য কাজ করে।
ডিবিএমএল ডিজাইনার ভিজ্যুয়াল স্টুডিও 2015, 2017 বা 2019 এ ডিফল্টরূপে ইনস্টল করা নেই You আপনাকে ভিএস বন্ধ করতে হবে, ভিএস ইনস্টলারটি শুরু করতে হবে এবং আপনার ইনস্টলেশনটি পরিবর্তন করতে হবে। এসকিউএল সরঞ্জাম LINQ বৈশিষ্ট্য আপনি ইনস্টল করতে হবে। ভিএস 2017/2019 এর জন্য, আপনি এটি ব্যক্তিগত উপাদান> কোড সরঞ্জামের আওতায় খুঁজে পেতে পারেন ।
আপনার .dbML-diagram এ একটি সারণী আপডেট করতে উদাহরণস্বরূপ, যুক্ত কলামগুলি যুক্ত করুন:
আপনি কোডস্মিথের উপর ভিত্তি করে কোড জেনারেশন টেম্পলেটগুলির প্লিনকো সেটও পরীক্ষা করে দেখতে পারেন, যা আপনাকে লিনাক টু এসকিউএল এবং এর সাথে প্রচুর ঝরঝরে কাজ করতে দেয়:
Http://www.plinqo.com এ প্লিনকো সাইটটি দেখুন এবং পরিচয় ভিডিওগুলি দেখুন।
আমার পরিচিত দ্বিতীয় সরঞ্জামটি হুয়াগাটি ডিবিএমএল / ইডিএমএক্স সরঞ্জামগুলি , যা ডিবিএমএল (লিনক-টু-এসকিউএল) এবং ইডিএমএক্স (সত্তা ফ্রেমওয়ার্ক) ম্যাপিং ফাইলগুলি এবং আরও অনেক কিছু (যেমন নামকরণের কনভেনশন ইত্যাদি) অনুমোদন দেয়।
আঙ্গুরের ছিরড়া
আমরা একটি কাস্টম লিখিত টি 4 টেমপ্লেট ব্যবহার করি যা আমাদের সমস্ত .DBML ফাইলে প্রতিটি টেবিলের জন্য তথ্য_স্কেমার মডেলটিকে গতিশীলভাবে জিজ্ঞাসা করে এবং তারপরে ডাটাবেস থেকে নতুন স্কিমার তথ্য সহ .DBML ফাইলের কিছু অংশ ওভাররাইট করে। আমি অত্যন্তএর মতো সমাধান বাস্তবায়নের পরামর্শ দিন - এটি আমার সময়ের অদলগুলি সাশ্রয় করেছে, এবং আপনার সারণীগুলি মুছে ফেলার এবং পুনরায় যুক্ত করার মতো নয় যাতে আপনি আপনার সংযোগগুলি রাখবেন। এই সমাধানের সাহায্যে আপনি যখন স্কিমা পরিবর্তন করবেন তখন আপনি সংকলন-সময় ত্রুটিগুলি পেয়ে যাবেন। আপনি নিশ্চিত করতে চান যে আপনি যদিও একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করছেন, কারণ ভিন্নতা সত্যই কার্যকর। এটি একটি দুর্দান্ত সমাধান যা আপনি যদি কোনও ডিবি স্কিমা প্রথম পদ্ধতির সাথে বিকাশ করেন তবে ভাল কাজ করে। অবশ্যই, আমি আমার সংস্থার কোডটি ভাগ করতে পারি না তাই আপনি নিজেই এটি লেখার জন্য নিজেরাই। তবে আপনি যদি কিছু লিঙ্ক-টু-এক্সএমএল জানেন এবং স্কুলে যেতেএই প্রকল্পে আপনি যেখানে যেতে চান সেখানে যেতে পারেন।
আমি VS2008 এ অন্তর্নির্মিত ভিজ্যুয়াল ডিজাইনার ব্যবহার করার পরামর্শ দেব, কারণ ডিবিএমএল আপডেট করার ফলে আপনার জন্য উত্পন্ন কোডটিও আপডেট হয়। ভিজ্যুয়াল ডিজাইনারের বাইরে ডিবিএমএল সংশোধন করার ফলে অন্তর্নিহিত কোড সিঙ্কের বাইরে চলে যাবে।
টেবিলগুলি আপডেট করার পরে ডিবিএমএল আপডেট করার একটি উপকার রয়েছে ... বিদ্যমান সারণিতে পরিবর্তন করা হলে বিদেশী কী সম্পর্কগুলি তত্ক্ষণাত্ হ'ল না। চারপাশের কাজটি হল প্রকল্পের একটি বিল্ড করা এবং তারপরে আবার টেবিলগুলি পুনরায় যুক্ত করা। আমি এটি এমএসকে জানিয়েছি এবং এটি ভিএস 2010-এর জন্য স্থির হয়েছে।
ডিবিএমএল ডিসপ্লে নতুন বিদেশী কী বাধা দেখায় না
নোট করুন যে মূল উত্তরে প্রদত্ত নির্দেশাবলী পরিষ্কার নয়। টেবিল আপডেট করতে
সঞ্চিত পদ্ধতি আপডেটের ক্ষেত্রে, আপনি এটি .dbML ফাইল থেকে মুছে ফেলা উচিত এবং এটি পুনরায় সন্নিবেশ করানো উচিত। তবে যদি সঞ্চিত পদ্ধতিতে দুটি পাথ থাকে (উদা: কিছু হলে; কিছু কলাম প্রদর্শন করুন; অন্য কিছু কলাম প্রদর্শন করুন), নিশ্চিত করুন যে দুটি পাথের একই কলামের নাম আছে !!! অন্যথায় কেবল প্রথম পাথ কলামগুলিই উপস্থিত থাকবে।
এখানে সম্পূর্ণ ধাপে ধাপে পদ্ধতি যা আমার পক্ষে কাজ করেছে লিনকোটি এসকিউএল ডিবিএমএল আপডেট করার জন্য এবং সম্পর্কিত ফাইলগুলিতে একটি নতুন কলাম অন্তর্ভুক্ত করতে আমি ডেটাবেস টেবিলগুলির মধ্যে যুক্ত করেছি।
উপরের অন্যান্য পরামর্শ অনুসারে আপনার নকশার পৃষ্ঠে পরিবর্তনগুলি করা দরকার; তবে আপনাকে কিছু অতিরিক্ত পদক্ষেপ করতে হবে। এগুলি সম্পূর্ণ পদক্ষেপ:
1. Drag your updated table from Server Explorer onto the design surface
2. Copy the new column from this "new" table to the "old" table (see M463 answer for details on this step)
3. Delete the "new" table that you just dragged over
4. Click and highlight the stored procedure, then delete it
5. Drag the new stored procedure and drop into place.
6. Delete the .designer.vb file in the code-behind of the .dbml
(if you do not delete this, your code-behind containing the schema will
not update even if you rebuild and the new table field will not be included)
7. Clean and Rebuild the solution (this will rebuild the .designer.vb file to include all the new changes!).