আমি কেন সিস্টেম.কম্পোনেন্টমোডেল.ডাটাঅ্যানোটেশনগুলি উল্লেখ করতে পারি না?


100

আমি নিম্নলিখিতটি সহ সর্বাধিক দৈর্ঘ্যের স্ট্রিং নির্দিষ্ট করতে আমার ডাব্লুপিএফ প্রকল্পে ডেটা অ্যানোটেশনগুলি ব্যবহার করার চেষ্টা করছি:

using System.ComponentModel.DataAnnotations;

তবে আমি ত্রুটি পেয়েছি

'ডেটাঅনোটেশন' টাইপ বা নেমস্পেসের নামটি 'সিস্টেমস.কমপোমেনডমডেল' তে উপস্থিত নেই (আপনি কি কোনও সমাবেশের রেফারেন্স মিস করছেন?)

আমি অন্য উদাহরণ যেখানে দেখা করেছি DataAnnotations করেন এই নামস্থান রয়েছে। আমি সি # 4 ব্যবহার করছি। আমি এটি ব্যবহার করতে না পারার কোনও কারণ আছে? আমি এটি ঠিক করতে কী করতে পারি?


আপনি কি এমভিসি ইনস্টল করেছেন? আমি বিশ্বাস করি যে ডেটা অ্যানোটেশনগুলি সেই প্যাকেজের অন্তর্ভুক্ত
ডুগজম্যাকডোনাল্ড

4
সম্ভবত আপনি "অ্যাসেম্বলি রেফারেন্স মিস করছেন"।
ফুগ

4
ত্রুটি বার্তা সহায়ক হতে নকশাকৃত, এড়ানো হবে না।
কেন্ডাল ফ্রে

6
ওকে বলছি, অজ্ঞ হওয়ার কারণে আমাকে ক্ষমা করুন, তবে আমি সমাবেশটি উল্লেখ করছি System.ComponentModelএবং এতে অন্যান্য বিভিন্ন উপাদান ব্যবহার করছি। নীচে @ হরি অনুসারে, এটি প্রদর্শিত হয় যা DataAnnotationsতার নিজস্ব সমাবেশে বিদ্যমান। আমি ভেবেছিলাম এটি System.ComponentModelএকই নামস্থানে যেমন আছে তেমন এটির মধ্যে উপস্থিত থাকবে ।
ডেভদেভ

উত্তর:


157

আপনাকে যে সমাবেশে এই নাম স্থানটি সংজ্ঞায়িত করা হয়েছে তা উল্লেখ করতে হবে (ভিজ্যুয়াল স্টুডিও টেম্পলেটগুলিতে এটি ডিফল্টরূপে উল্লেখ করা হয় না)। আপনার রেফারেন্স ম্যানেজারটি খুলুন এবং সিস্টেমে একটি রেফারেন্স যুক্ত করুন omp কম্পোনেন্টমোডেল ata ডেটা অ্যানোটেশনস অ্যাসেমব্লি (সমাধান এক্সপ্লোরার -> রেফারেন্স যুক্ত করুন -> নেট ট্যাব নির্বাচন করুন -> সিস্টেমটি বেছে নিন omp উপাদানটি মডেল.ডাটা তালিকা থেকে তালিকা উল্লেখ করুন)


10
এখানে সবচেয়ে অদ্ভুত বিষয়টি হ'ল ভিএস আমাকে এর জন্য সাধারণ 'সম্ভাব্য ফিক্স' দিতে সক্ষম হয় নি। ভাবছেন কেন ...
টড ভ্যানস

VS2019 এ। নেট ট্যাবটি নেই (আর নেই)। জনবি'র আরও সাম্প্রতিক উত্তর যা আমার পক্ষে কাজ করছে তা পরীক্ষা করে দেখুন!
পিটার.সাইক

23

.NET কোর বা। নেট স্ট্যান্ডার্ড ব্যবহার করা হয়

ব্যবহার:

নিউগেট প্যাকেজ পরিচালনা করুন ..

নিউগেট প্যাকেজ পরিচালনা করুন ব্যবহার করুন

পরিবর্তে:

রেফারেন্স যুক্ত করুন ...

অ্যাড রেফারেন্স ব্যবহার করবেন না


4
কমান্ড লাইন থেকেdotnet add package System.ComponentModel.Annotations
এরিক

এছাড়াও ভিএসকোডে নুগেট প্যাকেজ ম্যানেজার ইনস্টল করার মাধ্যমে - -> "কমান্ড + শিফট + পি" (ম্যাকে) - -> কমান্ডটি অনুসরণ করে এবং "নুগেট প্যাকেজ ম্যানেজার" টাইপ করে এবং স্বয়ংক্রিয় পদ্ধতিতে তালিকা থেকে "প্যাকেজ যুক্ত করুন" নির্বাচন করুন - > এবং সিস্টেমে টাইপ করা .. এবং সঠিক প্যাকেজ প্রদর্শন করার জন্য স্বতঃপূরণের জন্য অপেক্ষা করা হচ্ছে এবং "সিস্টেম.কম্পোনমোডেল.অনোটেশনস" - -> নির্বাচন করে এবং যেখানে এই সমাবেশটি অন্তর্ভুক্ত করা দরকার সেখানে প্রকল্পটি নির্বাচন করুন - -> এবং প্রয়োজন হলে "পুনরুদ্ধার" নির্বাচন করুন রেফারেন্স স্থাপন করুন।
সুপি

13

সিস্টেমটি উল্লেখ করুন। কম্পোনেন্টমোডেল D ডেটাঅ্যানোটেশন

সিস্টেম.কম্পোনমেন্টমোডেল.ডাটাঅ্যানোটেশন ব্যবহার করার জন্য একটি কোড ফাইলে; ফাইলের শীর্ষে যেমন:

using System.ComponentModel.DataAnnotations;

সমাধান এক্সপ্লোরারটিতে ডানদিকে ক্লিক করে আপনার প্রকল্পে একটি .NET রেফারেন্স যুক্ত করুন:

এখানে চিত্র বর্ণনা লিখুন

আশাকরি এটা সাহায্য করবে! এই প্রশ্নটি আমাকে সাহায্য করেছিল।


8

রেফারেন্সগুলিতে এটি না থাকলে (যেমন আমি করিনি) আপনি নুগেট সিস্টেমও যোগ করতে পারেন omp কম্পোনেন্টমোডেল the সম্মেলনগুলি পেতে এবং ত্রুটিগুলি সমাধান করার জন্য টীকাগুলি। (এটি উত্তর হিসাবে এখানে যুক্ত করা এখনও ত্রুটির জন্য গুগলের শীর্ষে রয়েছে)


4

আমারও একই সমস্যা ছিল এবং আমি আমার একটি প্রকল্পে রেফারেন্স যুক্ত করে সমাধান করেছি যাতে উল্লিখিত উল্লেখ নেই। আপনার সমাধানে যদি 2-3 টি প্রকল্প থাকে, তবে অন্যান্য প্রকল্পগুলিতে এই উল্লেখটি যুক্ত করে পরীক্ষা করুন by


2

আপনার প্রকল্পের জন্য ফ্রেম ওয়ার্ক সংস্করণ 4.5 বা তার বেশি ব্যবহার করুন তারপরে সমস্যাটি সমাধান হয়েছে ause কারণ এই নেমস্পেসটি 4.5 এর উপরে এবং তারও বেশি।


4
এটা ভুল দেখতে এখানে
itsho

আমি .NET 4.5.x ব্যবহার করছি এবং এটি অন্তর্ভুক্ত নয়। তবে, তখন আমি এমভিসি ব্যবহার করছি না। এই অ্যাপ্লিকেশনটি এমন একটি কনসোল অ্যাপ যা কোনও ইউআই নেই যা দিনে একবার ক্রোন জব হিসাবে চালিত হবে। আমি কেবল ক্লাসগুলিতে ডেটা অ্যানোটেশন ব্যবহার করতে চাই যা প্রতিটি এসকিউএল সার্ভার সারণী সারি থেকে প্রাপ্ত কলাম থেকে ডেটা ধরে রাখবে এমন ডেটা সদস্যদের উপস্থাপন করে। আমি এটিকে ম্যানুয়ালি একটি রেফারেন্স হিসাবে যুক্ত করার চেষ্টা করব।
মিডলএজডমুট্যান্ট নিনজা প্রোগ্রামার

এটি একবার দেখুন; এখানে
ব্যবহারকারী 2090762

@ user2090762: নেমস্পেসটি বিদ্যমান, তবে এখনও সমস্ত ক্লাসের উপস্থিতি নেই। বিশেষত ইমেলএড্রেসঅ্যাট্রিবিউট 4.5 পর্যন্ত পাওয়া যায় না।
jmoreno

2

আমি খুঁজে পেয়েছি যে আমি সিস্টেমটি.কম্পোনেন্টমোডেল.ডাটাঅনোটেশনগুলি সিলভারলাইট 5 থেকে নীচের সংস্করণ (1) এর সাথে উল্লেখ করতে পারি না। আমি দেখতে পেয়েছি যে সিলভারলাইট 5 টি অ্যাসেমব্লি .NET সমাবেশগুলি ব্যবহার করতে পারে না, এটি ত্রুটিটি দেয় "আপনি সিস্টেমের কোনও উল্লেখ উল্লেখ করতে পারবেন না। আশা করি নীচে (2) এ সিলভারলাইট 5 প্যাকেজটি ইনস্টল করা আছে। যদি এটি ব্যর্থ হয় তবে আমি এই পোস্টটি আপডেট করব।

[আপডেট: এটি ব্যর্থ হয়েছে। আমি সিলভারলাইট 5 সম্পর্কিত সমস্ত কিছু ইনস্টল করেছি এবং আমার কাছে .dll সমাবেশ সিস্টেমের সিলভারলাইট সংস্করণ নেই omp খুব খারাপ. দ্বিতীয় আপডেট: আমি একটি পুরানো .dll দেখতে পেয়েছিলাম ভিজ্যুয়াল স্টুডিও ২০০৮ বা ২০১০-এর জন্য সিলভারলাইট বিকাশকারী কিটের আগের ইনস্টলেশন থেকে এই নামটি পেয়েছি I যেমন এটি [Display(Name = "My Property Name")]. এই সমস্ত কিছুর জন্য কাজ করে বা না করে। তবে আমি জানি না]]

(1)

Microsoft Visual Studio Professional 2013
Version 12.0.21005.1 REL
Microsoft .NET Framework
Version 4.5.51641

ইনস্টল করা সংস্করণ: পেশাদার

(২) http://go.microsoft.com/fwlink/?LinkId=229318


আপডেট তৃতীয় - আমি সিলভারলাইট 5 এর জন্য ক্লায়েন্ট সাইডে কাজ করতে System.CompenderModel.DataAnnotations.dll পেতে পারি না, তবে আশ্চর্যজনকভাবে সার্ভার সাইডে সিলভারলাইট প্রকল্পটি .NET v4.5.1 সংস্করণটি ব্যবহার করে .ডেল ঠিক আছে। তবে ক্লায়েন্ট পক্ষটি .NET সংস্করণ গ্রহণ করবে না, এবং এটি .dll এর একটি সিলভারলাইট সংস্করণ দাবি করবে, যা এই তারিখ অনুসারে আমি কোথাও খুঁজে পাচ্ছি না। সুতরাং আপনি অবশ্যই ক্লায়েন্ট পক্ষ ছাড়া ছাড়া করতে হবে।
পলডিসেম্বার 16

1

আমি একই সমস্যাটি আসার সাথে সাথে এই বিষয়ে সহায়তাটি অনুসন্ধান করেছি।

যদিও নিম্নলিখিতটি মূলত ২০১২ সালে জিজ্ঞাসিত প্রশ্নের উত্তর নাও হতে পারে এটি যারা এই থ্রেড জুড়ে আসে তাদের জন্য এটি একটি সমাধান হতে পারে।

এটি সমাধানের একটি উপায় হ'ল আপনার প্রকল্পটি কোথায় সমাধানের মধ্যে রয়েছে তা যাচাই করা। এটি আমার উদাহরণ হিসাবে দেখা যাচ্ছে (আমি একটি নুগেট প্যাকেজ ইনস্টল করার চেষ্টা করছিলাম তবে এটি হবে না এবং তালিকাভুক্ত ত্রুটিটি এসেছিল) যে সমাধান প্রকল্পের মধ্যে দেখানো সত্ত্বেও আমার প্রকল্প ফাইলটি সমাধানের ডিরেক্টরিতে অন্তর্ভুক্ত ছিল না। আমি সুযোগের বাইরে ডিরেক্টরিটি থেকে প্রকল্পটি মুছলাম এবং এই প্রকল্পটি আবার যুক্ত করেছিলাম তবে এবার সঠিক অবস্থানের মধ্যে।


0
This error occurs when the reference to the "System.dll" got removed.Solution to the problem is very simple add the reference to "System.dll".The dll is normally available in the following location
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" .Add the reference your problem will get solved .

0

যদি আপনি ভিজ্যুয়াল স্টুডিওটি vs2008 থেকে বনাম 2010 এ আপডেট করার চেষ্টা করেন। এবং আপনার অ্যাপ্লিকেশনটি ফ্রেমওয়ার্ক 3.5 ব্যবহার করে (এবং আপনি এটি আপগ্রেড করতে চান না), এবং ডাব্লুসিএফ আরআইএ পরিষেবাদি বিটাও ব্যবহার করেছেন ... আমার খারাপ খবর আছে ... আপনি ডাব্লুসিএফ আরআইএ সার্ভিসেস ভি 1 তে আপগ্রেড করতে হবে (বিটা 2020-এ কাজ করে না ) ... এবং এর কারণে ... আপনাকে রূপালী ৪.০ এ সিলভারলাইট ৪ + আপগ্রেড করতে হবে

এটি দেখুন: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html


0

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

এটি অবশ্যই পুরানো সিলভারলাইট 4 অ্যাসেমব্লিকে উল্লেখ করেছে যা সিলভারলাইট 5 তে আপগ্রেড হওয়ার পরে আর উপলব্ধ ছিল না।


0

System.CompenderModel.DataAnnotations এর নিজস্ব সমাবেশে অন্তর্ভুক্ত রয়েছে তাই আপনাকে অবশ্যই এটি রেফারেন্স করা হয়েছে তা নিশ্চিত করতে হবে। কেবল সহজভাবে:

1)। সলিউশন এ ডান ক্লিক করুন এবং অ্যাড নির্বাচন করুন।

2)। তালিকা থেকে রেফারেন্স চয়ন করুন।

3)। "সিস্টেম.কম্পোনেন্টমোডেল.ডাটা অ্যানোটেশন" অনুসন্ধান করুন এবং তার বাম পাশে চেক বাক্সটি টিক দিন এবং ঠিক আছে চাপুন।

কাজ শেষ হয়েছে, কোনও রেফারেন্স ত্রুটি থাকা উচিত নয়।


0

একই সমস্যা আমারও আছে। এটি যখন খুব বোকামি হয় যখন আমি সিস্টেমের সাথে একই নামের স্থান যুক্ত করি। আমি সমস্ত উল্লেখ মুছে ফেলার চেষ্টা করি, তবে এটি সমাধান হয় না। আমি "গ্লোবাল :: সিস্টেম.কম্পোনেন্টমোডেল" ব্যবহার করি, এটি পাশাপাশি কাজ করছে। যখন আমি আমার নাম স্থানটি সরিয়ে ফেলি, তখন এই সমস্যাটি সমাধান হয়ে গেছে।


-6

আমারও একই সমস্যা ছিল, আমি এই সমস্যাটি অনুসরণ করে সমাধান করেছি।

পৃষ্ঠায় ডান ক্লিক করুন, সম্পত্তি নির্বাচন করুন। বিল্ড অ্যাকশনে কনটেন্ট নির্বাচন করুন।

আশা করি এই সমাধান আপনাকে সাহায্য করতে পারে।


আপনি কোন "পৃষ্ঠা" উল্লেখ করছেন? এবং এটি ঠিক কীভাবে সহায়তা করে?
ক্রোনো

4
ঠিক আছে, এটা সত্যিই ভুল। আপনি যদি কোনও প্রকল্পের উপাদানটি নির্মাণের সময় "সামগ্রী" হিসাবে বিবেচনা করেন তবে এটি তার আচরণটি হারাবে। সুতরাং আপনি যদি এটি কোনও ক্লাসে করেন তবে এটি আর সংকলিত হবে না এবং এর কোডটি কখনও কল করা হবে না। পরিবর্তে এটি প্রোগ্রাম সংকলন আউটপুট বাইনারি বরাবর একটি ফাইল হিসাবে অনুলিপি করা হবে। এজন্য আপনি সংকলন ত্রুটিগুলি পাওয়া বন্ধ করবেন, তবে এটি অবশ্যই কোনও সংকলন সমস্যার সমাধান নয়।
Ivaylo স্লাভভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.