সত্তা ফ্রেমওয়ার্ক একটি শ্রেণীর সম্পত্তি উপেক্ষা 4.1 কোড প্রথম


299

আমার বোধগম্যতা হল যে [NotMapped]বৈশিষ্ট্যটি EF 5 অবধি পাওয়া যায় না যা বর্তমানে সিটিপিতে রয়েছে তাই আমরা এটি উত্পাদন করতে পারি না।

আমি কীভাবে EF 4.1 এ বৈশিষ্ট্যগুলি উপেক্ষা করে চিহ্নিত করতে পারি?

আপডেট: আমি অন্য কিছু আশ্চর্য লক্ষ্য করেছি। আমি [NotMapped]কাজের বৈশিষ্ট্যটি পেয়েছি তবে কোনও কারণে, EF 4.1 এখনও public bool Disposed { get; private set; }চিহ্নিত করা সত্ত্বেও ডাটাবেসে ডিসপোজড নামে একটি কলাম তৈরি করে [NotMapped]। ক্লাস IDisposeableঅবশ্যই প্রয়োগ করে তবে আমি কীভাবে তা বিবেচনা করব তা দেখছি না। কোন চিন্তা?



এটি আমার কাছে মনে হয় এটি এন্টি ফ্রেমওয়ার্ক 4.1-তেও প্রয়োগ করা উচিত। এই লিঙ্কটি চেক করুন: social.msdn.microsoft.com/ Forums
eu

1
@ সামলেচ: আমি আমার নিজের পোস্ট করার আগে এই প্রশ্নটি ইতিমধ্যে পড়েছি এবং এর কোনও সমাধান পাইনি। প্রশ্নটি কীভাবে EF4 এ একই অর্জন করবেন? আমি কি এই পোস্টে কিছু মিস করেছি?
রাহেল খান

আমি ইএফ ৪.১ থাকাকালীন আমি এটিই ভেবেছিলাম এবং বৈশিষ্ট্যটি দেখতে পাচ্ছি। তবে EF আমার অ্যাপ্লিকেশনগুলিতে এটিকে সম্পূর্ণ উপেক্ষা করে বেশ খুশি মনে হচ্ছে। এটি নেটিভ এবং রেফারেন্সের ধরণের পাশাপাশি কম রেফারেন্স প্রকারের ক্ষেত্রে যেমন এমএস অফিস ইন্ট্রি্রপ অ্যাপ্লিকেশনগুলি সত্য।
রহিল খান

আমি দুঃখিত তবে আমি এখনই একটি সাধারণ অ্যাপ্লিকেশন দিয়ে একটি পরীক্ষা করেছি এবং এটি কার্যকর হয়। আপনি কি নমুনা কোড সরবরাহ করতে পারেন?
ইলমেট

উত্তর:


594

NotMappedনির্দিষ্ট সম্পত্তি বাদ দিতে কোড-ফার্স্টকে নির্দেশ দেওয়ার জন্য আপনি অ্যাট্রিবিউট ডেটা টিকাটি ব্যবহার করতে পারেন

public class Customer
{
    public int CustomerID { set; get; }
    public string FirstName { set; get; } 
    public string LastName{ set; get; } 
    [NotMapped]
    public int Age { set; get; }
}

[NotMapped]System.ComponentModel.DataAnnotationsনেমস্পেসে অ্যাট্রিবিউট অন্তর্ভুক্ত করা হয়েছে ।

আপনি বিকল্পটিতে এটি আপনার ক্লাসে Fluent APIওভাররাইডিং OnModelCreatingফাংশন সহ করতে পারেন DBContext:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   modelBuilder.Entity<Customer>().Ignore(t => t.LastName);
   base.OnModelCreating(modelBuilder);
}

http://msdn.microsoft.com/en-us/library/hh295847(v=vs.103).aspx

আমি যে সংস্করণটি পরীক্ষা করেছি তা হ'ল EF 4.3, আপনি যখন নুগেট ব্যবহার করবেন তখন এটি সর্বশেষতম স্থিতিশীল সংস্করণ।


সম্পাদনা করুন : এসইপি 2017

Asp.NET কোর (২.০)

ডেটা টিকা

আপনি যদি এসপ নেট কোর ব্যবহার করেন ( এই লেখার সময় 2.0 ), [NotMapped]বৈশিষ্ট্যটি সম্পত্তি স্তরে ব্যবহার করা যেতে পারে।

public class Customer
{
    public int Id { set; get; }
    public string FirstName { set; get; } 
    public string LastName { set; get; } 
    [NotMapped]
    public int FullName { set; get; }
}

সাবলীল এপিআই

public class SchoolContext : DbContext
{
    public SchoolContext(DbContextOptions<SchoolContext> options) : base(options)
    {
    }
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Customer>().Ignore(t => t.FullName);
        base.OnModelCreating(modelBuilder);
    }
    public DbSet<Customer> Customers { get; set; }
}

3
ধন্যবাদ। উত্তরগুলি সর্বদা তাদের পিছনে প্রচেষ্টা সহ দেখতে ভাল। অন্য উত্তরটি সঠিক হিসাবে চিহ্নিত করার আগে আমি আপনার শেষ লাইনটি লক্ষ্য করি নি। যেহেতু আপনার উত্তর আগে এসেছিল, তাই আমি মনে করি আপনার সংশোধন করা কেবলমাত্র ন্যায়সঙ্গত। আমি নিশ্চিত @ ইলমেট কিছু মনে করবে না।
রাহেল খান

13
V5 সাথে> মতিন এই এখন System.ComponentModel.DataAnnotations.Schema লাইভে এর
Daveo

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

8
[নটম্যাপেড] ব্যবহার করা অন্য সিরিয়ালাইজারদের (উদাহরণস্বরূপ জেএসএন / এক্সএমএল) এই সম্পত্তিটি মানচিত্র না করার জন্য বলবে। আপনি যদি কেবল কোনও ডাটাবেস টেবিলটিতে ম্যাপিং প্রতিরোধ করতে চান তবে এখনও সিরিয়ালাইজারদের সম্পত্তি অ্যাক্সেস থাকে তবে আপনাকে অনমোডেল ক্রিয়েটিং পদ্ধতির ব্যবহার করতে হবে।
ম্যাক্সমান্টজ

যদিও আমি ঠিক বুঝতে পারি নি কীভাবে, এটি সত্তা ফ্রেমওয়ার্ক 6+ এ উত্তরাধিকার সূত্রে প্রাপ্ত সম্পত্তিগুলির সাথে কাজ করে না বৈশিষ্ট্য এবং সাবলীল এপি নির্দেশনা উপেক্ষা করে বলে মনে হয়
পিবিও

35

EF 5.0 হিসাবে আপনার System.ComponentModel.DataAnnotations.Schemaনামের স্থান অন্তর্ভুক্ত করতে হবে ।


2
এটা কি এখনও আছে? আমি EF 6.0 ব্যবহার করছি এবং এটি এখন আর আমার প্রকল্পের ক্ষেত্রে নয়। যতক্ষণ না আমি কোনও নেমস্পেস রেফারেন্স করেছি যা ইতিমধ্যে কোথাও উপরে উল্লিখিত হয়েছে।
JARRRRG
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.