সত্তা ফ্রেমওয়ার্ক - অবৈধ কলামের নাম '* _ID "


104

আমি এটিকে কোড ফার্স্ট এবং ডেটাবেস প্রথম ইএফ এর মধ্যে কিছু বিষয়ে সংকীর্ণ করেছি, তবে কীভাবে এটি ঠিক করবেন তা নিশ্চিত নই। আমি যথাসাধ্য পরিষ্কার হওয়ার চেষ্টা করব, তবে আমি নিজে এখানে কিছু বোঝাপড়া মিস করছি। এটি সত্তা ফ্রেমওয়ার্ক 4.4

আমি এমন একটি প্রকল্প উত্তরাধিকার সূত্রে পেয়েছি যেখানে সত্তা ফ্রেমওয়ার্ক ব্যবহৃত হয়েছিল, তবে অনেকগুলি আসল ফাইল ফিরে যাওয়ার কোনও সত্য উপায় ছাড়াই মোছা হয়েছিল। আমি ইএফ (ডেটাবেস প্রথম) পুনরায় যুক্ত করেছি এবং একটি টি 4 সেটআপ প্রতিলিপি করেছি যা প্রকল্পটি চারপাশে নির্মিত হয়েছিল। এটি সমস্ত ডাটাবেস মডেলের কোড সংস্করণ এবং একটি ডিবিসিএনটেক্সট কোড ফাইল উত্পন্ন করে।

যদি আমার সংযোগের স্ট্রিংটি "সাধারণ" এর মতো দেখায় তবে নেট সংযোগের স্ট্রিংটিতে আমি একটি অবৈধ কলাম নাম "প্রসেসস্টেট_আইডি" সম্পর্কে একটি ত্রুটি পাই। প্রসেসস্টেট_আইডি কোড বেসে মোটেই নেই, এটি ইডিএমএক্স ফাইল বা কোনও কিছুর মধ্যে নেই। এটি ক্যোয়ারিতে কিছু স্বয়ংক্রিয় ইএফ রূপান্তর বলে মনে হচ্ছে।

আমি যখন সংযোগের স্ট্রিংটি সত্তা ফ্রেমওয়ার্ক মডেলের সাথে মেলে এটি ঠিকঠাক কাজ করে।

সত্তা ফ্রেমওয়ার্কের সাথে পূর্ববর্তী কোডটি মিলানোর চেষ্টা করার পরে আমি "স্বাভাবিক" রাখতে চাই N নেট সংযোগের স্ট্রিং।

সুতরাং আমার এখানে দুটি প্রশ্ন রয়েছে: ১. কোডের একটি সাধারণ সংযোগের স্ট্রিং থেকে কোনও ইএফ সংযোগ স্ট্রিংয়ে যাওয়ার ভাল উপায় কী? ২. এখানে কি অন্য কোনও ফিক্স রয়েছে যা আমি অবৈধ কলামের নাম ত্রুটি বন্ধ করতে দেখছি না?


4
আপনার যদি কেবল একজন অ্যাক্সেসর সহ নেভিগেশন সম্পত্তি থাকে তবে এটিও ঘটে:public virtual Person Person { get; }
আফাক গর

দয়া করে একটি উত্তর চিহ্নিত করুন
কয়েদি জিরো

উত্তর:


94

আপনার কোনও আইকোলেকশন রয়েছে কিনা তা পরীক্ষা করে দেখুন।

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


45
কেবলমাত্র এই উত্তরের বিষয়ে পরিষ্কার হওয়া, কারণ এটি আমার অবস্থার সাথে সবচেয়ে সঠিক ছিল (তবে আমি আমার সমস্যাটি বের করার পরেও আমি এটি জানতাম না)। আপনি টেবিলটি পুনরুদ্ধার করার সময় যদি অন্য টেবিল_আইডি সম্পর্কিত কিছু ত্রুটি থাকে তবে আপনার অন্যান্য টেবিল মডেলটিতে যান এবং নিশ্চিত করুন যে সেখানে আপনার কোনও আইকোলিকেশন নেই <টেবিল>। সম্পর্কের সংজ্ঞায়িত না করে ফ্রেমওয়ার্কটি স্বয়ংক্রিয়ভাবে ধরে নেবে যে আপনার অবশ্যই অন্য টেবিলের কাছে এফকে থাকতে হবে এবং উত্পন্ন এসকিউএল-এ এই অতিরিক্ত বৈশিষ্ট্য তৈরি করতে হবে।
লুক

15
EF আমার 4 ঘন্টা নষ্ট
নিতিন এস

4
@ নিতিনসওওয়ান্ট কি তা চালিয়েছেন? EF আমাকে এর সমস্ত নকল এবং আন-সংযুক্তিযুক্ত রেকর্ড সহ দিনে 4 ঘন্টা নষ্ট করে।
জ্যাকব

@ লুক আপনার মন্তব্য আমাকে বাঁচিয়েছে। আমি আপনাকে অনেক ভালবাসি :)
আরাদ

4
আমাদের প্রয়োজন EF নায়ককে দেখুন, আমাদের প্রাপ্য EF নায়ক নয়। আমি তোমাকে ভালোবাসি.
ম্যাথু ইয়ং

65

এটি তাদের (আমার মত) যারা খুব শীঘ্রই অন্যান্য 2 টি উত্তর বুঝতে পারেন নি তাদের জন্য দেরী প্রবেশ is

তাই ...

ইএফ প্যারেন্ট টেবিলগুলি কী-রেফারেন্স থেকে এক্সপেক্টেড নামটিতে মানচিত্রের চেষ্টা করছে ... এবং যেহেতু ... বিদেশী মূল নামটি ডাটাবেসগুলিতে শিশু টেবিল সম্পর্কের "পরিবর্তন বা সংক্ষিপ্ত" ছিল ... আপনি উপরের বার্তাটি পাবেন get

(এই ফিক্সটি EF সংস্করণের মধ্যে পৃথক হতে পারে)

আমার জন্য ফিক্স ওয়াস:
মডেলটির সাথে "ফরেনকে" বৈশিষ্ট্য যুক্ত করা হচ্ছে

public partial class Tour
{
    public Guid Id { get; set; }

    public Guid CategoryId { get; set; }

    [Required]
    [StringLength(200)]
    public string Name { get; set; }

    [StringLength(500)]
    public string Description { get; set; }

    [StringLength(50)]
    public string ShortName { get; set; }

    [StringLength(500)]
    public string TourUrl { get; set; }

    [StringLength(500)]
    public string ThumbnailUrl { get; set; }

    public bool IsActive { get; set; }

    [Required]
    [StringLength(720)]
    public string UpdatedBy { get; set; }

    [ForeignKey("CategoryId")]
    public virtual TourCategory TourCategory { get; set; }
}

4
এটি আমার পক্ষে কাজ করেছে। আমি এই উত্তরটি খুঁজে পেয়েছি এমন জায়গা হওয়ার জন্য +1।
জেরি বেনসন-মন্টগোমেরি

@ জেরি আমার ফোরইন কী সংজ্ঞায়িত হয়েছে। তবে এখনও এটি অনুসন্ধান করে Category_Id। আপনি ঠিক EF এর বিভিন্ন সংস্করণে সংশোধন সম্পর্কে উল্লেখ করেছেন? আমি EF 6.0 ব্যবহার করছি আমি কানাডাপ্টের ফিক্সটি কী?
অজয় আরাধ্য্যা

@ অজয়-আরাধ্য্যা আসলে, সেই ব্যক্তিই ছিলেন যিনি মূলত প্রতিক্রিয়া জানিয়েছেন, বন্দী-শূন্য, যিনি ইএফ-র বিভিন্ন সংস্করণ সম্পর্কে মন্তব্য করেছিলেন।
জেরি বেনসন-মন্টগোমেরি

@ জেরিবেনসন-মন্টগোমেরি কিছুতেই নয়! আমি এটি কাজ করে। এটি 'ওয়ান টু ওয়ান' ম্যাপিং ছিল যা এটি অনুসন্ধান করার জন্য তৈরি করেছিল *_ID। ব্যাক রেফারেন্স সহ ভাল কাজ করে।
অজয় আরাধ্য্যা

4
আপনি একটি মেটাডাটা আংশিক বর্গ যোগ করে এটিও ঠিক করতে পারেন যাতে আপনি পুনর্জন্মের সময় এটিকে ঠিক করতে হবে না। [MetadataType(typeof(MetaData))] public partial class Tour { public class MetaData { [ForeignKey(nameof(TourCategory))] public virtual TourCategory TourCategory { get; set; } } }
কার্টার মেডলিন 5 ই

41

পবিত্র গরু - বহু ঘন্টা চেষ্টা করার পরে, আমি অবশেষে এটি আবিষ্কার করেছি।

আমি প্রথমে EF6 ডাটাবেসটি করছি এবং আমি "সীমা অজানা কলাম" ত্রুটি সম্পর্কে ভাবছিলাম - এটি কোনও কারণে টেবিলের নাম আন্ডারস্কোর কলামের নাম উত্পন্ন করছিল এবং অস্তিত্বহীন কলামটি সন্ধান করার চেষ্টা করছিল।

আমার ক্ষেত্রে, আমার একটি টেবিলের অন্য টেবিলের একই প্রাথমিক কীতে দুটি বিদেশী কী উল্লেখ রয়েছে - এরকম কিছু:

Animals            Owners
=======            ======
AnimalID (PK)      Pet1ID    <- FK to AnimalID
                   Pet2ID    <- also FK to AnimalID

মতিন মত কিছু অদ্ভুত কলামের নামের উৎপাদিত হয় Owners_AnimalID1এবং Owners_AnimalID2এবং তারপর নিজেই বিরতি রইল।

এখানে কৌশলটি হ'ল এই বিভ্রান্তিকর বিদেশী কীগুলি ফ্লুয়েন্ট এপিআই ব্যবহার করে ইএফের সাথে নিবন্ধিত হওয়া দরকার!

আপনার মূল ডাটাবেস প্রসঙ্গে, OnModelCreatingপদ্ধতিটি ওভাররাইড করুন এবং সত্তার কনফিগারেশনটি পরিবর্তন করুন। সাধারণত, আপনার একটি পৃথক ফাইল থাকবে যা EntityConfigurationক্লাসটি প্রসারিত করবে , তবে আপনি এটি ইনলাইন করতে পারবেন।

যেভাবেই আপনি এটি করেন, আপনাকে এই জাতীয় কিছু যুক্ত করতে হবে:

public class OwnerConfiguration : EntityTypeConfiguration<Owner>
{
    public OwnerConfiguration()
    {
        HasRequired(x => x.Animals)
            .WithMany(x => x.Owners)  // Or, just .WithMany()
            .HasForeignKey(x => x.Pet1ID);
    }
}

এবং এটি দিয়ে, ইএফ (সম্ভবত) আপনার প্রত্যাশা অনুযায়ী কাজ শুরু করবে। বুম।

এছাড়াও, আপনি উপরেরটি একটি নালামযোগ্য কলাম দিয়ে যদি ব্যবহার করেন - তবে তার .HasOptional()পরিবর্তে কেবল একই ত্রুটি পাবেন .HasRequired()


এখানে লিঙ্কটি আমাকে কুঁচকে ফেলেছে:

https://social.msdn.microsoft.com/forums/en-US/862abdae-b63f-45f5-8a6c-0bdd6eeabfdb/getting-sqlexception-inomot-column-name-userid-from-ef4-codeonly?forum=adonetefx

এবং তারপরে, ফ্লুয়েন্ট এপিআই ডক্স বিশেষত বিদেশী মূল উদাহরণগুলি সহায়তা করে:

http://msdn.microsoft.com/en-us/data/jj591620.aspx

আপনি এখানে বর্ণিত হিসাবে কীগুলির অন্য প্রান্তে কনফিগারেশনগুলিও রাখতে পারেন:

http://www.entityframeworktutorial.net/code-first/configure-one-to-many-referenceship-in-code-first.aspx

আমি এখন কিছু নতুন সমস্যা যাচ্ছি, তবে এটি ছিল বিশাল ধারণাগত ব্যবধান যা অনুপস্থিত ছিল। আশা করি এটা সাহায্য করবে!


4
অনেক অনেক ধন্যবাদ .. আমার একই সমস্যা ছিল।
শচীন পরাশর

এটি আমার পক্ষেও কাজ করেছিল, মানচিত্রের ফাইলে অনুরূপ কোডের লাইনের যোগ হয়েছে: builder.HasOne(item => item.LogicalShipment).WithMany(s => s.Items).HasForeignKey(item => item.LogicalShipmentId).IsRequired();
দামিনীভিস

15

অনুমান:

  • Table
  • OtherTable
  • OtherTable_ID

এখন এই উপায়গুলির মধ্যে একটি চয়ন করুন:


ক)

অপসারণ ICollection<Table>

আপনি OtherTable_IDযখন পুনরুদ্ধার করছেন তখন আপনার যদি কিছু সম্পর্কিত ত্রুটি Tableথাকে তবে আপনার OtherTableমডেলটিতে যান এবং নিশ্চিত ICollection<Table>হন যে সেখানে আপনার কোনও প্রবেশ নেই। সম্পর্কের সংজ্ঞায়িত না করে ফ্রেমওয়ার্কটি স্বয়ংক্রিয়ভাবে ধরে নেবে যে আপনার অবশ্যই অন্য টেবিলের কাছে এফকে থাকতে হবে এবং উত্পন্ন এসকিউএল-এ এই অতিরিক্ত বৈশিষ্ট্য তৈরি করতে হবে।

এই উত্তরের সমস্ত ক্রেডিট @ লুকের অন্তর্গত। উপরোক্ত উত্তরটি @ ড্রয়াইড উত্তরের অধীনে তাঁর মন্তব্য। আমি মনে করি তার মন্তব্যটি খুব পরিষ্কার তাই আমি উত্তর হিসাবে এটি আবার লিখেছি।


খ)

  • যোগ OtherTableIdকরুনTable

এবং

  • ডাটাবেসের OtherTableIdমধ্যে সংজ্ঞা দিনTable

4
এমন উজ্জ্বল উত্তর!
আরাদ

এই উত্তরটি সত্যই দিনের পর দিন দ্রুত রক্ষা পেয়েছে। এবং LUKE ধন্যবাদ, আমি তার মন্তব্য পড়েছি। যদিও @ ড্রুইড এটিকে উত্তর শৃঙ্খলার শেষদিকে তৈরি করেছে তবে এটি দুর্দান্ত ছিল এবং এই পরিস্থিতিতে সবচেয়ে বেশি মুখোমুখি হওয়ার জন্য কী প্রয়োজন ছিল।
দিব তিওয়ারি

3

আমার ক্ষেত্রে আমি দুটি বিদেশী কী দিয়ে তৈরি একটি প্রাথমিক কীটি ভুলভাবে সংজ্ঞা দিয়েছিলাম:

HasKey(x => x.FooId);
HasKey(x => x.BarId);

HasRequired(x => x.Foo)
    .WithMany(y => y.Foos);
HasRequired(x => x.Bar);

আমি যে ত্রুটিটি পাচ্ছিলাম তা হ'ল "অবৈধ কলামের নাম বার_আইডি"।

যৌগিক প্রাথমিক কীটি সমস্যাটি সঠিকভাবে নির্দিষ্ট করে:

HasKey(x => new { x.FooId, x.BarId });

...

3

আমার পক্ষে এই আচরণের কারণটি ছিল ফ্লুয়েন্ট এপিআই সহ সংজ্ঞায়িত ম্যাপিংয়ের বিষয়টি। আমার 2 সম্পর্কিত প্রকার ছিল, যেখানে টাইপ A তে alচ্ছিক টাইপ বি অবজেক্ট ছিল, এবং টাইপ বিতে অনেক A অবজেক্ট ছিল।

public class A 
{
    …
    public int? BId {get; set;}
    public B NavigationToBProperty {get; set;}
}
public class B
{
    …
    public List<A> ListOfAProperty {get; set;}
}

আমি এইরকম সাবলীল এপি সহ ম্যাপিং সংজ্ঞায়িত করেছি:

A.HasOptional(p=> p.NavigationToBProperty).WithMany().HasForeignKey(key => key.BId);

তবে সমস্যাটি ছিল, টাইপ বি তে নেভিগেশন সম্পত্তি ছিল List<A>, ফলস্বরূপ আমার ছিল hadSQLException Invalid column name A_Id

আমি ভিজুয়াল স্টুডিও ডিবাগটি EF ডেটাবেসকন্টেক্সট.ড্যাটাবেস.লগের সাথে ভিএস আউটপুট-> ডিবাগ উইন্ডোতে উত্পন্ন এসকিউএল আউটপুটে সংযুক্ত করেছি

db.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);

এবং উত্পন্ন এসকিউএল এর বি টেবিল থেকে 2 টি সম্পর্ক ছিল -> একটি সঠিক আইডি সহ অন্যটি এর সাথে A_Id

সমস্যার বিষয়টি হ'ল, আমি এই B.List<A>নেভিগেশন সম্পত্তিটিকে ম্যাপিংয়ে যুক্ত করি নি ।

সুতরাং এইভাবে আমার ক্ষেত্রে সঠিক ম্যাপিংটি হতে হয়েছিল:

A.HasOptional(p=> p.NavigationToBProperty).WithMany(x => x.ListOfAProperty).HasForeignKey(key => key.BId);

2

আমার ক্ষেত্রে এই সমস্যার কারণ হ'ল স্থানান্তরিত ডাটাবেসে বিদেশী কী বাধা ছিল না। সুতরাং বিদ্যমান ভার্চুয়াল আইকোলিকেশনটি সফলভাবে লোড করা হয়নি।


1

আমারও এই সমস্যা ছিল এবং দেখে মনে হচ্ছে কয়েকটি ভিন্ন কারণ রয়েছে। আমার জন্য এটি একটি আইডি সম্পত্তি ভুলভাবে অভিভাবক শ্রেণীর দীর্ঘ পরিবর্তে ইন্ট হিসাবে সংজ্ঞায়িত করা হয়েছে যাতে একটি নেভিগেশন অবজেক্ট রয়েছে। ডাটাবেসে আইডি ক্ষেত্রটি বিগিন্ট হিসাবে সংজ্ঞায়িত করা হয়েছিল যা সি # এর সাথে দীর্ঘসূত্রে মিলছে। এটি একটি সংকলন সময় ত্রুটির কারণ ঘটেনি তবে ওপির মতো একই রান টাইম ত্রুটির কারণ ঘটেছে:

// Domain model parent object
public class WidgetConfig 
{
    public WidgetConfig(long id, int stateId, long? widgetId)
    {
        Id = id;
        StateId = stateId;
        WidgetId = widgetId;
    }

    private WidgetConfig()
    {
    }

    public long Id { get; set; }

    public int StateId { get; set; }

    // Ensure this type is correct
    public long? WidgetId { get; set; } 

    public virtual Widget Widget { get; set; }
}

// Domain model object
public class Widget
{
    public Widget(long id, string name, string description)
    {
        Id = id;
        Name = name;
        Description = description;
    }

    private Widget()
    {
    }

    public long Id { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }
}

// EF mapping
public class WidgetConfigMap : EntityTypeConfiguration<WidgetConfig>
{
    public WidgetConfigMap()
    {
        HasKey(x => x.Id);
        ToTable(nameof(WidgetConfig));
        Property(x => x.Id).HasColumnName(nameof(WidgetConfig.Id)).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).IsRequired();
        Property(x => x.StateId).HasColumnName(nameof(WidgetConfig.StateId));
        Property(x => x.WidgetId).HasColumnName(nameof(WidgetConfig.WidgetId));
    }
}   

// Service
public class WidgetsService : ServiceBase, IWidgetsService
{
    private IWidgetsRepository _repository;

    public WidgetsService(IWidgetsRepository repository)
    {
        _repository = repository;
    }

    public List<WidgetConfig> ListWithDetails()
    {
        var list = _repository.ListWithDetails();

        return new WidgetConfigMapping().ConvertModelListToDtoList(list).ToList();
    }
}   

// Repository
public class WidgetsRepository: BaseRepository<WidgetConfig, long>, IWidgetsRepository
{
    public WidgetsRepository(Context context)
        : base(context, id => widget => widget.Id == id)
    {
    }

    public IEnumerable<WidgetConfig> ListWithDetails()
    {
        var widgets = Query
            .Include(x => x.State)
            .Include(x => x.Widget);

        return widgets;
    }
}

1

আমার জন্য সমস্যাটি হ'ল আমি আমার অ্যাপ্লিকেশনটিতে টেবিলটি ম্যাপ করেছিলাম - একবার কোড ফার্স্টের মাধ্যমে, একবার ডেটাবেস ফার্স্টের মাধ্যমে।

উভয়কে অপসারণ করা আমার ক্ষেত্রে সমস্যার সমাধান করে।


1

আমার জন্য, এটি ইএফ এর বহুবচন সংক্রান্ত সমস্যার কারণে ঘটেছে। "-স্ট্যাটাস" এর মতো কিছু দিয়ে শেষ হওয়া টেবিলগুলির জন্য, ইএফ মনে করে যে এটি একবচন "-স্টাতু"। সত্তা এবং ডিবি সারণির নামটিকে "-স্ট্যাটাসটাইপস" এ পরিবর্তন করা এটি ঠিক করে দিয়েছে।

এইভাবে, প্রতিবার সত্তা মডেলগুলি আপডেট হওয়ার সাথে সাথে নতুন নামকরণের প্রয়োজন হবে না।


0

যদি আপনার একই টেবিলে একাধিকবার বিদেশী কী উল্লেখ থাকে তবে আপনি ইনভার্সপ্রোপার্টি ব্যবহার করতে পারেন

এটার মতো কিছু-

[InverseProperty("MyID1")]
public virtual ICollection<MyTable> set1 { get; set; }
[InverseProperty("MyID2")]
public virtual ICollection<MyTable> set2 { get; set; }

0

আমার জন্য (সত্তা ফ্রেমওয়ার্ক 6.1.3 এর অধীনে ভিজ্যুয়াল স্টুডিও 2017 এবং ডাটাবেস-প্রথম মডেল ব্যবহার করে) ভিজুয়াল স্টুডিও এবং পুনর্নির্মাণটি পুনরায় চালু করার পরে সমস্যাটি চলে গেছে।


আপনি কারণটির কারণ ব্যাখ্যা না করায় এটি প্রশ্নের যথাযথ উত্তর বলে মনে হচ্ছে না। এটি একটি মন্তব্য হিসাবে রাখা উচিত।
ইবো

0

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


0

আমার ক্ষেত্রে, আমার কাছে ইতিমধ্যে একটি ডাটাবেস রয়েছে (ডাটাবেস ফার্মগুলি)। এখানে সমস্ত মন্তব্যে ধন্যবাদ, আমি আমার সমাধানটি পেয়েছি:

টেবিলগুলির অবশ্যই সম্পর্ক থাকতে পারে তবে কলামগুলির নামটি আলাদা হওয়া উচিত এবং ফরেনকে বৈশিষ্ট্য যুক্ত করা দরকার।

[ফরেনকি ("প্রেস্টেডরআইডি")] পাবলিক ভার্চুয়াল আওমপ্রেস্টাডোরস সার্ভিসিস কোলাবোরডোরস {পান; সেট }

অর্থাৎ, PRE_ID হ'ল পিকে, তবে অন্য টেবিলের এফকে PRESTADOR_ID, তারপরে এটি কার্যকর হয়। এখানে সমস্ত মন্তব্যে ধন্যবাদ আমি আমার সমাধানটি পেয়েছি। ইএফ রহস্যজনক উপায়ে কাজ করে।


0

একই টেবিলের নেভিগেশন সম্পত্তি নিয়ে আপনার যদি এই সমস্যা থাকে তবে আপনাকে আমাদের সম্পত্তির নাম পরিবর্তন করতে হবে।

উদাহরণ স্বরূপ :

Table : PERSON
Id
AncestorId (with a foreign key which references Id named Parent) 

আপনি পরিবর্তন করতে হবে AncestorIdজন্য PersonId

দেখে মনে হচ্ছে যে ইএফ একটি চাবি তৈরির চেষ্টা করছে ParentIdকারণ এটি পূর্বপুরুষ নামে একটি সারণী খুঁজে পায়নি ...

সম্পাদনা: এটি প্রথম ডাটাবেসের জন্য একটি স্থির!

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