আমি এমন একটি ওয়েবসাইট তৈরির পরীক্ষা নিরীক্ষা করছি যা আমার উপস্থাপনা স্তর এবং ডেটা মডেল / ডাটাবেসের জন্য সত্তা কাঠামোর জন্য জেএসওএন সহ এমভিসিকে উপকৃত করে। আমার ইস্যুটি আমার মডেল অবজেক্টগুলিকে জেএসএন-তে সিরিয়ালাইজ করার সাথে খেলতে আসে।
আমি আমার ডাটাবেস তৈরি করতে কোডটি প্রথম পদ্ধতিটি ব্যবহার করছি। কোডটি প্রথম পদ্ধতিটি করার সময় একাধিক সম্পর্কের (পিতা বা মাতা / সন্তানের) সন্তানের প্রয়োজন হয় পিতা-মাতার কাছে ফিরে আসা উচিত। (উদাহরণ কোড আমার টাইপো হতে পারে তবে আপনি ছবিটি পান)
class parent
{
public List<child> Children{get;set;}
public int Id{get;set;}
}
class child
{
public int ParentId{get;set;}
[ForeignKey("ParentId")]
public parent MyParent{get;set;}
public string name{get;set;}
}
জসনআরসাল্টের মাধ্যমে কোনও "পিতামাতা" অবজেক্ট ফেরত দেওয়ার সময় একটি বিজ্ঞপ্তি সংক্রান্ত রেফারেন্স ত্রুটি নিক্ষেপ করা হয় কারণ "সন্তানের" শ্রেণীর পিতামাতার সম্পত্তি রয়েছে।
আমি স্ক্রিপ্টআইগনোর বৈশিষ্ট্যটি চেষ্টা করেছি তবে আমি শিশুদের বিষয়গুলি দেখার ক্ষমতাটি হারাচ্ছি। আমার কোনও সময়ে পিতামাতাদের সন্তানের দৃশ্যে তথ্য প্রদর্শন করতে হবে।
আমি অভিভাবক এবং সন্তানের উভয়ের জন্য বেস ক্লাস করার চেষ্টা করেছি যার একটি বিজ্ঞপ্তি নেই। দুর্ভাগ্যক্রমে যখন আমি বেসপ্যারেন্ট এবং বেসচিল্ড প্রেরণের চেষ্টা করি তখন এগুলি JSON পার্সার তাদের উদ্ভূত শ্রেণি হিসাবে পড়েন (আমি নিশ্চিত যে এই ধারণাটি আমার থেকে দূরে চলেছে)।
Base.baseParent basep = (Base.baseParent)parent;
return Json(basep, JsonRequestBehavior.AllowGet);
আমি যে সমাধানটি নিয়ে এসেছি তা হ'ল "দেখুন" মডেলগুলি তৈরি করা। আমি ডেটাবেস মডেলগুলির সহজ সংস্করণ তৈরি করি যা পিতাম শ্রেণীর রেফারেন্স অন্তর্ভুক্ত করে না। এই ভিউ মডেলগুলির প্রত্যেকেরই ডাটাবেস সংস্করণ এবং কনস্ট্রাক্টর ফিরিয়ে আনার পদ্ধতি রয়েছে যা ডাটাবেস মডেলটিকে প্যারামিটার হিসাবে নেয় (ভিউমডেল.নাম = ডাটাবেস মডেল.নেম)। যদিও এই পদ্ধতিটি কাজ করে তবে বাধ্য হয়।
দ্রষ্টব্য: আমি এখানে পোস্ট করছি কারণ আমি মনে করি এটি আরও আলোচনার জন্য উপযুক্ত। আমি এই সমস্যাটি দেখতে আসার জন্য একটি ভিন্ন ডিজাইনের প্যাটার্নটি উপার্জন করতে পারি বা এটি আমার মডেলের কোনও আলাদা বৈশিষ্ট্য ব্যবহার করার মতো সহজ হতে পারে। আমার অনুসন্ধানে আমি এই সমস্যাটি কাটিয়ে উঠতে কোনও ভাল পদ্ধতি দেখিনি।
আমার শেষ লক্ষ্যটি হবে একটি দুর্দান্ত এমভিসি অ্যাপ্লিকেশন যা সার্ভারের সাথে যোগাযোগের জন্য এবং ডেটা প্রদর্শনের জন্য জেএসওনকে ভারীভাবে ব্যবহার করে। স্তরগুলি জুড়ে একটি কনসিস্টিটিভ মডেল বজায় রাখার সময় (বা যতটা ভাল আমি আসতে পারি)।