এটি একটি পুরানো প্রশ্ন ছিল, তবে বিদ্যমান উত্তরগুলি আপনি যখন মডেলটি পুনরায় জেনারেট করবেন তখন কোনও কাস্টম বৈশিষ্ট্য ফেলে দেওয়ার গুরুতর সমস্যাটিকে উপেক্ষা করবেন। আমি উপলব্ধ বর্তমান বিকল্পগুলি আবরণ আরও বিশদ উত্তর যুক্ত করছি।
আপনার কাছে 3 টি বিকল্প রয়েছে:
[DisplayName("Name goes here")]
ডেটা মডেল শ্রেণিতে একটি বৈশিষ্ট্য যুক্ত করুন । খারাপ দিকটি হ'ল আপনি যখনই ডেটা মডেলগুলি পুনরায় জেনারেট করেন তখন এটিকে ফেলে দেওয়া হয়।
- আপনার স্ট্রিং প্যারামিটার যুক্ত করুন
Html.LabelFor
। উদাহরণস্বরূপ @Html.LabelFor(model => model.SomekingStatus, "My New Label", new { @class = "control-label"})
: https://msdn.microsoft.com/en-us/library/system.web.mvc.html.labelextensions.labelfor(v=vs.118).aspx এর অসুবিধেটি হ'ল আপনাকে অবশ্যই লেবেলটি পুনরাবৃত্তি করতে হবে প্রতিটি দৃষ্টিতে
- তৃতীয় বিকল্প। ডেটা ক্লাসের সাথে সংযুক্ত একটি মেটা-ডেটা ক্লাস ব্যবহার করুন (বিশদ বিবরণ অনুসরণ করুন)।
বিকল্প 3 - একটি মেটা-ডেটা ক্লাস যুক্ত করুন:
মাইক্রোসফ্ট বিদ্যমান ক্লাসটি পরিবর্তন না করে কোনও সত্তা ফ্রেমওয়ার্ক ক্লাসে সম্পত্তি সজ্জিত করার অনুমতি দেয় ! এটি আপনার ডেটাবেস ক্লাসগুলির সাথে সংযুক্ত মেটা-ডেটা ক্লাস করে (কার্যকরভাবে আপনার EF বর্গের পাশের প্রসারিত)। এটি বৈশিষ্ট্যগুলিকে সংশ্লিষ্ট শ্রেণিতে যুক্ত করার অনুমতি দেয় এবং নিজেই ক্লাসে নয় যাতে আপনি ডেটা মডেলগুলি পুনরায় জেনারেট করার সময় পরিবর্তনগুলি হারাতে পারে না ।
উদাহরণস্বরূপ, যদি আপনার ডেটা ক্লাস MyModel
কোনও SomekingStatus
সম্পত্তির সাথে থাকে তবে আপনি এটি এটি করতে পারেন:
প্রথমে একই নামের একটি আংশিক শ্রেণি ঘোষণা করুন (এবং একই নামস্থানটি ব্যবহার করে), যা আপনাকে ওভাররাইড না করে কোনও শ্রেণীর বৈশিষ্ট্য যুক্ত করতে দেয়:
[MetadataType(typeof(MyModelMetaData))]
public partial class MyModel
{
}
সমস্ত উত্পন্ন ডেটা মডেল ক্লাসগুলি আংশিক শ্রেণি, যা আপনাকে একই নামের আরও ক্লাস তৈরি করে অতিরিক্ত বৈশিষ্ট্য এবং পদ্ধতি যুক্ত করার অনুমতি দেয় (এটি খুব সহজ এবং আমি প্রায়শই এটি ব্যবহার করি যেমন মডেলটিতে অন্যান্য ক্ষেত্রের ধরণের স্ট্র্যাড সংস্করণ সরবরাহ করতে) )।
পদক্ষেপ 2: আপনার নতুন আংশিক শ্রেণীর দ্বারা রেফারেন্সযুক্ত একটি মেটাডেটা ক্লাস যুক্ত করুন:
public class MyModelMetaData
{
[DisplayName("My New Label")]
public string SomekingStatus;
}
তথ্যসূত্র: https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.metadatatypeattribute(v=vs.110).aspx
মন্তব্য:
- মেমরি থেকে, যদি আপনি কোনও মেটাডেটা ক্লাস ব্যবহার শুরু করেন তবে এটি প্রকৃত বর্গ (
[required]
ইত্যাদি) এর বিদ্যমান বৈশিষ্ট্যগুলিকে উপেক্ষা করতে পারে তাই আপনাকে মেটা-ডেটা ক্লাসে থাকা সদৃশদের প্রয়োজন হতে পারে।
- এটি যাদু দ্বারা পরিচালিত হয় না এবং কেবল কোনও শ্রেণীর সাথে কাজ করবে না। ইউআই সজ্জা বৈশিষ্ট্যগুলির জন্য সন্ধানকারী কোডটি প্রথমে একটি মেটা-ডেটা শ্রেণীর জন্য ডিজাইন করা হয়েছে।