আমি কীভাবে একটি লিঙ্ককে এসকিউএল ডিবিএমএল ফাইল আপডেট করব?


204

আমি কীভাবে একটি লিঙ্ককে এসকিউএল .dbML ফাইল আপডেট করব?

উত্তর:


258

মডেলটিকে সিঙ্কে রাখার জন্য তিনটি উপায় রয়েছে।

  1. ডিজাইনার থেকে পরিবর্তিত টেবিলগুলি মুছুন এবং তাদের ডাটাবেস এক্সপ্লোরার থেকে ডিজাইনার পৃষ্ঠের দিকে আবার টেনে আনুন। আমি খুঁজে পেয়েছি যে, এটি নির্ভরযোগ্যভাবে কাজ করার জন্য আপনাকে:

    ক। ডাটাবেস এক্সপ্লোরার ডাটাবেস স্কিমা রিফ্রেশ (ডান ক্লিক, রিফ্রেশ)
    বি। টেবিলগুলি মুছে ফেলার পরে ডিজাইনার সংরক্ষণ করুন
    । টেবিলগুলি আবার টেনে আনার পরে আবার সংরক্ষণ করুন।

    মনে রাখবেন যে আপনি যদি কোনও বৈশিষ্ট্য সংশোধন করে থাকেন (উদাহরণস্বরূপ, কোনও সমিতির শিশু সম্পত্তি বন্ধ করে দেওয়া) তবে এটি স্পষ্টতই এই পরিবর্তনগুলি হারাবে - আপনাকে সেগুলি আবার তৈরি করতে হবে।

  2. আপনার ডাটাবেস থেকে স্কিমাটি পুনঃজুনাতে এসকিউএল মেটাল ব্যবহার করুন। আমি বেশ কয়েকটি ব্লগ পোস্ট দেখেছি যা দেখায় যে এটি কীভাবে স্ক্রিপ্ট করা যায়

  3. সরাসরি ডিবিএমএল এর বৈশিষ্ট্য ফলকে পরিবর্তন করুন। এটি ক্ষেত্রের নালার অনুমতি দেওয়ার মতো সাধারণ পরিবর্তনগুলির জন্য কাজ করে।

ডিবিএমএল ডিজাইনার ভিজ্যুয়াল স্টুডিও 2015, 2017 বা 2019 এ ডিফল্টরূপে ইনস্টল করা নেই You আপনাকে ভিএস বন্ধ করতে হবে, ভিএস ইনস্টলারটি শুরু করতে হবে এবং আপনার ইনস্টলেশনটি পরিবর্তন করতে হবে। এসকিউএল সরঞ্জাম LINQ বৈশিষ্ট্য আপনি ইনস্টল করতে হবে। ভিএস 2017/2019 এর জন্য, আপনি এটি ব্যক্তিগত উপাদান> কোড সরঞ্জামের আওতায় খুঁজে পেতে পারেন ।


1
আমি 1 বি এবং 1 বি ছাড়াই 1 সি চেষ্টা করেছি এবং একটি ভিউতে একটি সাধারণ নির্বাচন সম্পাদন করার সময় 'নির্দিষ্ট কাস্টটি বৈধ নয়' ত্রুটি পেয়েছি। 1 বি সহ আমার জন্য এটি ঠিক করা হয়েছে
tomfumb

6
বনাম সাপোর্টে অনুরোধ করা হয়েছে connect.microsoft.com/VisualStudio/feedback/details/260723/... কিন্তু মাইক্রোসফট ফিক্স করতে চাই না।
মাইকেল ফ্রেইজিম

প্রথম পদ্ধতিটি চেষ্টা করে দেখে কাজ হয়েছিল। অনুমান করুন এটি একটি ছোট ডিবির জন্য কাজ করবে।
মুহাম্মদ

এটি আমাকে ব্যথিত করে যে 2019 এর শেষের দিকে, কম্পিউটার প্রোগ্রামিং কী তা জানার আগে আমার একটি উত্তর তৈরি করা দরকার ... এটি এত বিস্তারিত এবং দুর্দান্ত!
পিএসগুই

54

আপনার .dbML-diagram এ একটি সারণী আপডেট করতে উদাহরণস্বরূপ, যুক্ত কলামগুলি যুক্ত করুন:

  1. আপনার এসকিউএল সার্ভার এক্সপ্লোরার উইন্ডোটি আপডেট করুন।
  2. আপনার টেবিলের "নতুন" সংস্করণটি .dbML-diagram এ টেনে আনুন (নীচের ছবিতে রিপোর্ট 1)।

রিপোর্ট1 হ'ল টেবিলের নতুন সংস্করণ

  1. টেবিলের নতুন সংস্করণে যুক্ত হওয়া কলামগুলি চিহ্নিত করুন, যুক্ত কলামগুলি অনুলিপি করতে Ctrl+ টিপুন C

যুক্ত কলামগুলি অনুলিপি করুন

  1. আপনার টেবিলের "পুরানো" সংস্করণটি ক্লিক করুন এবং টেবিলের ইতিমধ্যে উপস্থিত সংস্করণে যুক্ত কলামগুলি পেস্ট করতে Ctrl+ টিপুন V

টেবিলের পুরানো সংস্করণে যুক্ত কলামগুলি পেস্ট করুন


4
এটি সবচেয়ে সহজ, সর্বনিম্ন ধ্বংসাত্মক পদ্ধতি বলে মনে হচ্ছে যে কোনও অতিরিক্ত সরঞ্জামের প্রয়োজন নেই এবং ভিএস ২০১7
টবি

1
এটি গৃহীত উত্তরের চেয়ে অনেক কম অনুপ্রবেশজনক এবং 2018 সালের শেষে ভাল কাজ করে চলেছে!
চিহ্নিত করুন

1
এটি দ্রুত (এবং স্কিমাতে এত তাড়াতাড়ি সম্পাদনা নয়) এর সেরা উত্তর। মডেল ভিউটি দেখতে সুন্দর করে তুলতে আমি অনেক সময় নিয়েছি। আমি আপডেট ফাইলগুলি মুছতে এবং টেনে নিয়ে যেতে ঘৃণা করি। যুক্ত ক্ষেত্রের জন্য এটি দুর্দান্ত কাজ করে!
হকার

1
আমার জন্য, এটি দুটি সমস্যার সমাধান করে। প্রথমটি ছিল যখন আমি টেবিলের মধ্যে অনুরূপ ক্ষেত্রটি অনুলিপি করতে এবং তারপরে পুনরায় নামকরণ করার চেষ্টা করেছি। যা বৈধকরণের সময় অবিরাম "অনির্দিষ্ট" বিল্ড ত্রুটি তৈরি করেছিল। অন্য সমস্যাটি হ'ল আমি যদি টেবিলটি সরিয়ে নিয়ে তারপরে এটি সম্পূর্ণরূপে যুক্ত করি তবে এর ফলে গিটে অনেক বড় পার্থক্যের সৃষ্টি হয়েছে (কারণ ফাইলগুলির মধ্যে অবজেক্টগুলি পুনরায় সাজানো হয়েছিল)। এই পদ্ধতির সাহায্যে আমি কেবলমাত্র নতুন ক্ষেত্রের সন্নিবেশ দেখতে পাচ্ছি, যা পরে পরিষ্কার বোঝা যায় এবং আরও সহজ।
goug

বিটিডাব্লু, "হ্যাঁ" ক্লিক করতে হবে যখন এটি আপনাকে জিজ্ঞাসা করবে "ডিজাইনারে আপনি যে জিনিসগুলি যুক্ত করছেন সেগুলি ডিজাইনারের চেয়ে আলাদা ডেটা সংযোগ ব্যবহার করে ..."
আইটেনমগ

5

আপনি কোডস্মিথের উপর ভিত্তি করে কোড জেনারেশন টেম্পলেটগুলির প্লিনকো সেটও পরীক্ষা করে দেখতে পারেন, যা আপনাকে লিনাক টু এসকিউএল এবং এর সাথে প্রচুর ঝরঝরে কাজ করতে দেয়:

  • প্রতি ক্লাসে একটি ফাইল তৈরি করুন (একক, বিশাল ফাইলের পরিবর্তে)
  • প্রয়োজন হিসাবে আপনার মডেল আপডেট করুন
  • আরও অনেক বৈশিষ্ট্য

Http://www.plinqo.com এ প্লিনকো সাইটটি দেখুন এবং পরিচয় ভিডিওগুলি দেখুন।

আমার পরিচিত দ্বিতীয় সরঞ্জামটি হুয়াগাটি ডিবিএমএল / ইডিএমএক্স সরঞ্জামগুলি , যা ডিবিএমএল (লিনক-টু-এসকিউএল) এবং ইডিএমএক্স (সত্তা ফ্রেমওয়ার্ক) ম্যাপিং ফাইলগুলি এবং আরও অনেক কিছু (যেমন নামকরণের কনভেনশন ইত্যাদি) অনুমোদন দেয়।

আঙ্গুরের ছিরড়া


স্রেফ কোডস্মিথ / পিনক্লিও ছিন্ন করে দিয়ে আমি এই পদ্ধতি গ্রহণের বিরুদ্ধে দৃ strongly়ভাবে পরামর্শ দিচ্ছি । অনুমোদিত এই উত্তরটি 4 বছরেরও বেশি পুরানো ...
ইয়াক

@ ইয়াক: এই সময়ে, আমি লিনক-টু-এসকিউএল ব্যবহারের বিরুদ্ধে দৃ strongly়ভাবে পরামর্শ দেব - পরিবর্তে সত্তা ফ্রেমওয়ার্ক ব্যবহার করুন, আরও ভাল পছন্দ!
marc_s

হ্যাঁ, তাই অ্যাপ্লিকেশনটিকে পিনকির পরিবর্তে একটি সরল ডিবিএমএল দিয়ে কাজ করবে কিনা তা যাচাইয়ের পরে EF এ চলে যাওয়া আমি পুরানো অ্যাপ্লিকেশনটি মুছে ফেলার পরবর্তী পদক্ষেপ ছিল।
ইয়াক

4

আমরা একটি কাস্টম লিখিত টি 4 টেমপ্লেট ব্যবহার করি যা আমাদের সমস্ত .DBML ফাইলে প্রতিটি টেবিলের জন্য তথ্য_স্কেমার মডেলটিকে গতিশীলভাবে জিজ্ঞাসা করে এবং তারপরে ডাটাবেস থেকে নতুন স্কিমার তথ্য সহ .DBML ফাইলের কিছু অংশ ওভাররাইট করে। আমি অত্যন্তএর মতো সমাধান বাস্তবায়নের পরামর্শ দিন - এটি আমার সময়ের অদলগুলি সাশ্রয় করেছে, এবং আপনার সারণীগুলি মুছে ফেলার এবং পুনরায় যুক্ত করার মতো নয় যাতে আপনি আপনার সংযোগগুলি রাখবেন। এই সমাধানের সাহায্যে আপনি যখন স্কিমা পরিবর্তন করবেন তখন আপনি সংকলন-সময় ত্রুটিগুলি পেয়ে যাবেন। আপনি নিশ্চিত করতে চান যে আপনি যদিও একটি সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করছেন, কারণ ভিন্নতা সত্যই কার্যকর। এটি একটি দুর্দান্ত সমাধান যা আপনি যদি কোনও ডিবি স্কিমা প্রথম পদ্ধতির সাথে বিকাশ করেন তবে ভাল কাজ করে। অবশ্যই, আমি আমার সংস্থার কোডটি ভাগ করতে পারি না তাই আপনি নিজেই এটি লেখার জন্য নিজেরাই। তবে আপনি যদি কিছু লিঙ্ক-টু-এক্সএমএল জানেন এবং স্কুলে যেতেএই প্রকল্পে আপনি যেখানে যেতে চান সেখানে যেতে পারেন।


2

আমি VS2008 এ অন্তর্নির্মিত ভিজ্যুয়াল ডিজাইনার ব্যবহার করার পরামর্শ দেব, কারণ ডিবিএমএল আপডেট করার ফলে আপনার জন্য উত্পন্ন কোডটিও আপডেট হয়। ভিজ্যুয়াল ডিজাইনারের বাইরে ডিবিএমএল সংশোধন করার ফলে অন্তর্নিহিত কোড সিঙ্কের বাইরে চলে যাবে।


4
হ্যাঁ, তবে ভিএস ২০০৮-এর ভিজ্যুয়াল ডিজাইনার আপনার অন্তর্নিহিত ডাটাবেসে পরিবর্তনগুলি সনাক্ত করতে এবং প্রতিক্রিয়া জানাতে পারে না :-( মুছে ফেলার এবং পুনরায় যুক্ত করার সংক্ষিপ্ততা, আপনার মডেলটি আপডেট করার পক্ষে কোনও সমর্থন নেই :-(
মারক_স

যদিও এটি সত্য, প্রশ্নটি খুব অস্পষ্ট ছিল এবং ডেটাবেস পরিবর্তিত হলে কোনও মডেল কীভাবে আপডেট করবেন তা নির্দিষ্টভাবে উল্লেখ করেননি।
জেসন মিজিয়নসেকজ

2

টেবিলগুলি আপডেট করার পরে ডিবিএমএল আপডেট করার একটি উপকার রয়েছে ... বিদ্যমান সারণিতে পরিবর্তন করা হলে বিদেশী কী সম্পর্কগুলি তত্ক্ষণাত্ হ'ল না। চারপাশের কাজটি হল প্রকল্পের একটি বিল্ড করা এবং তারপরে আবার টেবিলগুলি পুনরায় যুক্ত করা। আমি এটি এমএসকে জানিয়েছি এবং এটি ভিএস 2010-এর জন্য স্থির হয়েছে।

ডিবিএমএল ডিসপ্লে নতুন বিদেশী কী বাধা দেখায় না


নোট করুন যে মূল উত্তরে প্রদত্ত নির্দেশাবলী পরিষ্কার নয়। টেবিল আপডেট করতে

  1. ডিবিএমএল ডিজাইনের পৃষ্ঠটি খুলুন
  2. ডান-> ক্লিক-> সমস্ত নির্বাচন করুন বা নির্বাচন করে সমস্ত সারণী নির্বাচন করুন CTRLa
  3. CTRLx (কাটা)
  4. CTRLv (Paste)
  5. সমাধান সংরক্ষণ এবং পুনর্নির্মাণ।

আমি বিশ্বাস করবে না এটি সংশোধন করা হয়েছে কারণ সংশ্লিষ্ট connect.microsoft.com/VisualStudio/feedback/details/414601/... সংশোধন করা হয় না
মাইকেল Freidgeim

আপনি কাটা এবং পেস্ট করার আগে বা পরে আপনার পরিবর্তনগুলি করেন?
কলব ক্যানিয়ন

এটি 10 ​​বছর হয়েছে ... তবে আমি বিশ্বাস করি যে এটি আগে ছিল ... পরিবর্তনগুলি করুন তারপর # 2 এ যান।
ΩmegaMan

1

সঞ্চিত পদ্ধতি আপডেটের ক্ষেত্রে, আপনি এটি .dbML ফাইল থেকে মুছে ফেলা উচিত এবং এটি পুনরায় সন্নিবেশ করানো উচিত। তবে যদি সঞ্চিত পদ্ধতিতে দুটি পাথ থাকে (উদা: কিছু হলে; কিছু কলাম প্রদর্শন করুন; অন্য কিছু কলাম প্রদর্শন করুন), নিশ্চিত করুন যে দুটি পাথের একই কলামের নাম আছে !!! অন্যথায় কেবল প্রথম পাথ কলামগুলিই উপস্থিত থাকবে।


0

এখানে সম্পূর্ণ ধাপে ধাপে পদ্ধতি যা আমার পক্ষে কাজ করেছে লিনকোটি এসকিউএল ডিবিএমএল আপডেট করার জন্য এবং সম্পর্কিত ফাইলগুলিতে একটি নতুন কলাম অন্তর্ভুক্ত করতে আমি ডেটাবেস টেবিলগুলির মধ্যে যুক্ত করেছি।

উপরের অন্যান্য পরামর্শ অনুসারে আপনার নকশার পৃষ্ঠে পরিবর্তনগুলি করা দরকার; তবে আপনাকে কিছু অতিরিক্ত পদক্ষেপ করতে হবে। এগুলি সম্পূর্ণ পদক্ষেপ:

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!).
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.