এসকিউএল থেকে লিনকিউ থেকে সত্তা ফ্রেমওয়ার্ক


827

এখন .NET v3.5 SP1 প্রকাশিত হয়েছে (VS2008 এসপি 1 সহ), এখন আমাদের কাছে NET সত্তা ফ্রেমওয়ার্কে অ্যাক্সেস রয়েছে।

আমার প্রশ্ন এই। এনটিএম ফ্রেমওয়ার্ক এবং লিনকিউকে এসকিউএলকে একটি ওআরএম হিসাবে ব্যবহার করার মধ্যে সিদ্ধান্ত নেওয়ার চেষ্টা করার সময়, পার্থক্য কী?

আমি এটি যেভাবে বুঝতে পারি, সত্তা ফ্রেমওয়ার্ক (যখন লিনকিউ থেকে সত্তাগুলি ব্যবহার করা হয়) লিনকিউ থেকে এসকিউএল এর 'বড় ভাই'? যদি এটি হয় - এর কী কী সুবিধা রয়েছে? এটি কী করতে পারে যে লিনকিউ থেকে এসকিউএল নিজেই করতে পারে না?


138
আমি মনে করি যে নীচের উত্তরগুলি পুনরায় পরীক্ষা করা উচিত কারণ EF প্রকাশের দীর্ঘকাল থেকেই, তাই এখানে আসা নতুন বিকাশকারীরা ভুল ধারণাটি পেতে পারে। ইএফ এর প্রারম্ভিক শুরুর পর থেকে গ্রেট এবং ইজি সরঞ্জাম হয়ে উঠেছে। আপনি কেবল ডিবিতে সংযোগ স্থাপন করেছেন এবং এটি আপনার প্রয়োজনীয় 90% ধরণের। অভিজ্ঞ দৃষ্টিকোণ থেকে খুব দ্রুত বিকাশ! সেখান থেকে - লিনকুই আপনার সেরা বন্ধু। এটি অত্যন্ত স্বনির্ধারিত, এমভিসি কেবল এটি পছন্দ করে এবং এটি খারাপ বলে এমন লোকদের কাছে - কীভাবে এটি প্রথমে ব্যবহার করতে হয় তা শিখুন (এবং লিনকুইও ধরে রাখুন)!
গ্রুমানোজ

10
ঠিক তাই এটি স্পষ্ট - আপনার পছন্দ এখনই পছন্দ নয় - এমএসএফটি কার্যকরভাবে EF এর পক্ষে LINQ2SQL কে হত্যা করেছিল killed তবে, এমএসএফটি ওপেন সোর্সড ইএফ এটি কম স্তন্যপান করতে সহায়তা করেছে এবং স্পষ্টতই ভাল হচ্ছে। তবে যে কেউ ইএফ-তে প্রবেশের জন্য - এটি নিশ্চিত করে নিশ্চিত হন যে ইএফ-তে এখনও প্রচুর বিড়ম্বনা রয়েছে। - আমি প্রায় এক পোস্ট করেছেন stackoverflow.com/questions/305092/...
nikib3ro

4
@ কেপে 123, (ক) এসকিউএল-এর লিনিকউ "মৃত" নয়; এটি এখনও ব্যবহারযোগ্য; (খ) লিনকিউ থেকে এসকিউএল হ'ল উইন্ডোজ ফোন 8 বিকাশের মানক ডেটা অ্যাক্সেস পদ্ধতি।
রায়ান লুন্ডি

9
@ ব্যবহারকারী3308043, [উদ্ধৃতি আবশ্যক]
রায়ান লুন্ডি

3
@ কেরলেসা - ২০১০ সালের হিসাবে (.NET4.0 প্রকাশের সাথে, আমি সর্বাধিক সাম্প্রতিক উদ্ধৃতি পেয়েছি) এমএস স্বীকার করেছে যে লিনকুইএসসিএল-তে কিছু বিনিয়োগ করা যেতে পারে, "আমাদের সামগ্রিক বিনিয়োগের বেশিরভাগ অংশ সত্তায় থাকবে ফ্রেমওয়ার্ক। "
কিএমোটে

উত্তর:


483

লিনকিউ থেকে এসকিউএল কেবল মাইক্রোসফ্ট এসকিউএল সার্ভারে উপলব্ধ ডাটাবেস টেবিল, ভিউ, স্প্রোক এবং ফাংশনগুলির 1 থেকে 1 ম্যাপিং সমর্থন করে। তুলনামূলকভাবে ভাল ডিজাইন করা এসকিউএল সার্ভার ডেটাবেসগুলিতে দ্রুত ডেটা অ্যাক্সেস নির্মাণের জন্য ব্যবহার করার জন্য এটি একটি দুর্দান্ত এপিআই। লিনিকিউ 2 এসকিউএল প্রথম সি # 3.0 এবং। নেট ফ্রেমওয়ার্ক 3.5 দিয়ে প্রকাশিত হয়েছিল।

লিনক টু সত্তা (ADO.Net সত্তা ফ্রেমওয়ার্ক) একটি ওআরএম (অবজেক্ট রিলেশনাল ম্যাপার) এপিআই যা অবজেক্ট ডোমেন মডেলগুলির বিস্তৃত সংজ্ঞা এবং বিভিন্ন ADO.Net ডেটা সরবরাহকারীদের সাথে তাদের সম্পর্কের মঞ্জুরি দেয়। এই হিসাবে, আপনি বিভিন্ন টেবিল, উত্স, পরিষেবাদি ইত্যাদির সাহায্যে নির্মিত সামগ্রিক ম্যাশ-আপ ডিজাইন করতে বিভিন্ন ডাটাবেস বিক্রেতাদের, অ্যাপ্লিকেশন সার্ভারগুলি বা প্রোটোকলগুলিকে মিশ্রিত করতে পারেন এবং অ্যাডো. নেট ফ্রেমওয়ার্কটি প্রকাশ করেছিলেন was । নেট ফ্রেমওয়ার্ক 3.5 এসপি 1।

এটি এমএসডিএন-তে একটি ভাল প্রারম্ভিক নিবন্ধ: রিলেশনাল ডেটাতে LINQ উপস্থাপন করা


তোমার মত দেখতে LINQ এসকিউএল প্রশ্নের মতিন ব্যবহার
PositiveGuy

11
@ কফিএডিক্ট লিনক ল্যাম্বডাস ব্যবহার করে তারা স্টাইলের সাথে খুব মিল থাকলেও প্রতিটি এপিআইয়ের সম্পূর্ণ আলাদা আলাদা আন্ডারপিনিং রয়েছে। উদাহরণস্বরূপ, লিনিক্যু 2 এসকিউএল এসকিউএল কোয়েরিগুলি যেভাবে উত্পন্ন করে এসকিউএল ফাংশনগুলি ব্যবহারের জন্য অনুমতি দেয়, যেখানে এল 2 ই করেন না, বা কমপক্ষে ২০০৮ সালের মতো করেননি
ক্রিস

2
EF অবজেক্ট অরিয়েন্টেড পদ্ধতির ব্যবহারের পক্ষে এটি সত্যই সহজ এবং বিশ্বাসযোগ্য করে তোলে, খুব দ্রুত কোডিং করা যায়, পরিচালনা করা যায়। আমার জন্য, ডেটা অ্যাক্সেস করার সর্বোত্তম উপায়।
এন্টোইন পেলেটিয়ার

10
এই উত্তর অচল। এখন লিঙ্ক টু এসকিউএল একাধিক মানচিত্র ম্যাপিং সমর্থন করে
জর্জ ল্যানেটজ

201

আমি মনে করি দ্রুত এবং নোংরা উত্তরটি এটি

  • লিনকু থেকে এসকিউএল এটি করার দ্রুত এবং সহজ উপায়। এর অর্থ আপনি আরও দ্রুত যাচ্ছেন এবং আপনি যদি আরও ছোট কিছুতে কাজ করছেন তবে দ্রুত সরবরাহ করবেন।
  • সত্তা ফ্রেমওয়ার্ক হ'ল সর্বাত্মক, এটি করার কোনও উপায় নেই holds এর অর্থ আপনি যদি আরও বড় কিছুতে কাজ করে থাকেন তবে আপনি আরও বেশি সময় নেবেন, ধীর বিকাশ করবেন এবং আরও নমনীয়তা অর্জন করবেন।

32
আপনি EF এর সাথে একই জিনিসটি সম্পাদন করতে L2S এর সাথে কোডের কম লাইনগুলি লেখার ঝোঁকও রাখবেন। ইএফ-তে কোনও অলস লোডিংয়ের অর্থ হ'ল আপনি সর্বদা পরীক্ষা করে নিচ্ছেন যে কোনও কিছু লোড হয়েছে কিনা।
পল মেন্দোজা

ব্র্যাড, আপনি একটি ইকমার্স সাইটের জন্য কী পরামর্শ করবেন? আমি বলতে চাচ্ছি আমি কিছুই অন্যান্য সহজ CRUDs চেয়ে দেখতে পারে না সেখানে চলছে ...
PositiveGuy

2
@ কফিএডিক্ট স্পষ্টতই, সর্বাধিক ভোট দেওয়া উত্তরের শীর্ষ 3 জন সাধারণ সিআরইউডির জন্য এল 2 এস বলেছেন
ইসমাইলস

11
নেটফোনে EF সহ @ বনফোর্ড ৪. আমি মনে করি এটি এল 2 এস এর চেয়ে ভাল। EF থেকে 3.5 এ যে বৈশিষ্ট্যগুলি অনুপস্থিত ছিল সেগুলি L2S .NET 4.0 এ EF এ যুক্ত করা হয়েছে। ENET .NET 4.0-এ আপনার লিনিকউ বিবৃতি এখন এল 2 এস-এর মতো দেখতে বেশ একইরকম দেখাচ্ছে। EF আপনাকে কিছু অতিরিক্ত জিনিস দেয় যা আপনি এখন করতে পারেন এল 2 এস যা দেয় তার শীর্ষে।
পল মেন্দোজা

40
এই উত্তরটি এখন 5 বছরের পুরানো এবং বেশ পুরানো। সত্তা ফ্রেমওয়ার্ক 6 বেটা এখন ও অনেক উন্নত হয়, অলস লোডিং, enum সমর্থন, ইত্যাদি, ইত্যাদি অন্তর্ভুক্ত
টিম

109

লিনকুই কি এসকিউএল সত্যই মারা গেছে? ইনফোকিউ.কমের জন্য জোনাথন অ্যালেন

ম্যাট ওয়ারেন [লিনকিউ থেকে এসকিউএল] কে এমন কিছু হিসাবে বর্ণনা করেছেন যা "এমনকি কখনও উপস্থিত থাকার কথাও ছিল না।" মূলত, আসল ওআরএম প্রস্তুত না হওয়া পর্যন্ত তাদের লিনকিউ বিকাশে সহায়তা করার জন্য এটি কেবলমাত্র দাঁড়াতে হবে।

...

সত্তা ফ্রেমওয়ার্কের স্কেল এটিকে .NET 3.5 / ভিজ্যুয়াল স্টুডিও 2008 এর সময়সীমা মিস করতে দেয়। দুর্ভাগ্যক্রমে ".NET 3.5 সার্ভিস প্যাক 1" নামকরণের জন্য এটি সময়মতো সম্পন্ন হয়েছিল যা সার্ভিস প্যাকের চেয়ে বড় রিলিজের মতো ছিল।

...

জটিলতার কারণে বিকাশকারীরা [ADO.NET সত্তা ফ্রেমওয়ার্ক] পছন্দ করেন না।

...

নেট নেট 4.0.০ অনুসারে, লিনক টু সত্তা লিনিক্যু সম্পর্কিত সম্পর্কের পরিস্থিতিগুলির জন্য প্রস্তাবিত ডেটা অ্যাক্সেস সমাধান হবে।


56
প্রকৃতপক্ষে, আমরা ইএফ পছন্দ করি না কারণ এটির মতো দুর্বল ডিজাইনার রয়েছে এবং এটি অত্যন্ত চরম, অত্যন্ত বগি। আমি কখনই এটি এত জটিল হতে পারি নি।
ব্লুরাজা - ড্যানি পিফ্লুঘুফ্ট

12
প্রচুর প্রধান ই-কমার্স সাইটগুলি এসকিউএল থেকে লিনকুই ব্যবহার করে। উদাহরণ: Redbox, Stackoverflow, ইত্যাদি
PositiveGuy

14
আমি প্রচুর ভাল বিকাশকারীদের জানি যারা এসকিউএল-তে লিনকুই ব্যবহার করে এবং এই নিবন্ধগুলি পুরোপুরি চাপিয়ে দেওয়া হয়েছে বলে। আমি রাজী. লিনকিউ থেকে এসকিউএল শক্তিশালী .কমগুলিতে ব্যবহৃত হয়েছে এবং এখনও রয়েছে is
PositiveGuy

4
হ্যাঁ, L2EF ক্যোয়ারিতে একটি পূর্ণসংখ্যার সম্পত্তিতে .TosString () কল করা ব্যতিক্রম ঘটায় না।
স্টিঞ্জি জ্যাক

3
@ ব্লুরাজা-ড্যানিপ্লুঘুফুট 5 বছরেরও বেশি পরে কি এখনও এটি সত্য?
বিকাশ রানা

94

পোস্ট করা অ্যালার্স পোস্টে বেশ কয়েকটি সুস্পষ্ট পার্থক্য বর্ণিত রয়েছে, তবে সংক্ষিপ্ত উত্তরটি হ'ল:

  • এল 2 এস শক্তভাবে মিলিত - ডাটাবেসের নির্দিষ্ট ক্ষেত্রের জন্য সম্পত্তি বা নির্দিষ্ট ডেটাবেস স্কিমে আরও সঠিকভাবে অবজেক্ট ম্যাপিং object
  • L2S কেবলমাত্র এসকিউএল সার্ভারের সাথে কাজ করবে (যতদূর আমি জানি)
  • EF একক শ্রেণিকে একাধিক টেবিলগুলিতে ম্যাপিংয়ের অনুমতি দেয়
  • EF এমএম সম্পর্ক পরিচালনা করবে
  • EF- র যেকোন ADO.NET ডেটা সরবরাহকারীকে টার্গেট করার ক্ষমতা থাকবে

আসল ভিত্তিটি ছিল এল 2 এস দ্রুততর বিকাশের জন্য, এবং আরও "এন্টারপ্রাইজ" এন-টিয়ার অ্যাপ্লিকেশনগুলির জন্য ইএফ, তবে এটি এল 2 এস কিছুটা ছোট বিক্রি করছে selling


13
আপনার উদ্ধৃতি "এল 2 এস কেবল এসকিউএল সার্ভারের সাথে কাজ করবে (যতদূর আমি জানি)" আপডেট করার প্রয়োজন: ওপেন সোর্স প্রকল্প "ডিবিলিংক" লিনকিউকে এসকিউএল অ্যাসেমব্লির পরিবর্তে মাইএসকিউএল, পোস্টগ্রিসকিউএল, ইনগ্রেস, ফায়ারবার্ড, এসকিউএলাইটের সাথে কথা বলতে পারে with .. এবং মাইক্রোসফ্ট এসকিউএল (অবশ্যই)।
কনটাঙ্গো

1
অপেক্ষা করুন ... যাতে EF শক্তভাবে মিলিত DL অবজেক্ট তৈরি করে না?
পজিটিভগুই

7
হ্যাঁ আসল ভিত্তি যে এল 2 এস কোনও এন্টারপ্রাইজ সক্ষম সমাধান নয় তাই আর সত্য নয়। আমি বলতে চাইছি স্ট্যাকওভারফ্লো এল 2 এস এবং রেডবক্সের মতো অন্যান্য .কমের প্রচুর পরিমাণে চলে।
PositiveGuy

74

লিনকিউ থেকে এসকিউএল

  1. সমজাতীয় ডেটাসোর্স: এসকিউএল সার্ভার
  2. কেবলমাত্র ছোট প্রকল্পের জন্য প্রস্তাবিত যেখানে ডেটা স্ট্রাকচার ভালভাবে ডিজাইন করা হয়েছে
  3. SqlMetal.exe এর সাথে পুনর্বিবেচনা না করে ম্যাপিং পরিবর্তন করা যেতে পারে
  4. .dbML (ডাটাবেস মার্কআপ ল্যাঙ্গুয়েজ)
  5. টেবিল এবং ক্লাসগুলির মধ্যে একের পর এক ম্যাপিং
  6. টিপিএইচ সমর্থন করে উত্তরাধিকার
  7. জটিল ধরণের সমর্থন করে না
  8. স্টোরেজ-প্রথম পদ্ধতির
  9. একটি ডাটাবেসের ডাটাবেস কেন্দ্রিক ভিউ
  10. সি # টিম তৈরি করেছেন
  11. সমর্থিত তবে উন্নয়নের উদ্দেশ্যে নয়

সত্তা ফ্রেমওয়ার্ক

  1. ভিন্ন ভিন্ন ডেটাসোর্স: অনেক ডেটা সরবরাহকারী সমর্থন করুন
  2. ব্যতীত সমস্ত নতুন প্রকল্পের জন্য প্রস্তাবিত:
    • ছোটগুলি (লিংক থেকে এসকিউএল)
    • যখন ডেটা উত্স একটি ফ্ল্যাট ফাইল হয় (ADO.NET)
  3. আউটপুট ডিরেক্টরিতে অনুলিপি করতে মডেল এবং ম্যাপিং ফাইলগুলি সেট করার সময় ম্যাপিং পরিবর্তন করা যায় না
  4. .edmx (সত্তা ডেটা মডেল) এতে রয়েছে:
    • এসএসডিএল (স্টোরেজ স্কিমা সংজ্ঞা ভাষা)
    • সিএসডিএল (ধারণাগত স্কিমা সংজ্ঞা ভাষা)
    • এমএসএল (ম্যাপিং নির্দিষ্টকরণের ভাষা)
  5. টেবিল এবং ক্লাসগুলির মধ্যে এক থেকে এক, এক থেকে অনেকগুলি, একের পর এক ম্যাপিং
  6. উত্তরাধিকার সমর্থন করে:
    • টিপিএইচ (টেবিল প্রতি শ্রেণিবদ্ধ)
    • টিপিটি (সারণী প্রতি প্রকার)
    • টিপিসি (টেবিল প্রতি কংক্রিট ক্লাস)
  7. জটিল ধরণের সমর্থন করে
  8. কোড-প্রথম, মডেল-প্রথম, স্টোরেজ-প্রথম পন্থা appro
  9. একটি ডাটাবেসের অ্যাপ্লিকেশন-কেন্দ্রিক ভিউ
  10. এসকিউএল সার্ভার দল দ্বারা নির্মিত
  11. মাইক্রোসফ্ট ডেটা এপিআই এর ভবিষ্যত

আরো দেখুন:


6
এটি সর্বাধিক বর্তমান এবং বিস্তারিত উত্তর।
এরটিআর

2
সত্ত্বার ফ্রেমওয়ার্ক যখন এসকিউএল-তে লিনকিউ ব্যবহার করে না , যখন বলুন আপনি একটি লিখছেন dbSet<Orders>.Where()...ToList()? আমি মনে করি যে লিনকিউ থেকে এসকিউএল পর্যন্ত সত্তা ফ্রেমওয়ার্কের বিরোধিতা করা বিভ্রান্তিকর।
ডন চ্যাডল

4
@ মিমক্রাই ইএফ এল 2 এস ব্যবহার করে না , উভয়ই অন্তর্নিহিত ডাটাবেসের লিনাক-সরবরাহকারী। যদি আপনি এটিকে লিনাক-টু-এ-ডাটাবেস হিসাবে ব্যাখ্যা করেন, লিনাক-টু-অবজেক্টস এবং লিনক-টু-এক্সএমএল এর অনুরূপ, তবে হ্যাঁ, উভয়ই লিনাক-টু-এ-ডাটাবেসে সমান। তবে না, EF এল 2 এস ব্যবহার করে না (বা বিপরীতে)। দুটি সম্পূর্ণ পৃথক পৃথক সরঞ্জাম।
মার্টেন

4
"... ছোট ছোটগুলি বাদে সমস্ত নতুন প্রকল্পের জন্য প্রস্তাবিত" আমি একমত নই। কোড প্রথম হ'ল ছোট প্রকল্পগুলির সাথে চলমান স্থলটিকে আঘাত করার এক চটজলদি উপায়। তা ছাড়া এই প্রশ্নের দুর্দান্ত আপডেট।
ড্রিউজর্ডান

51

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


7
পোকো সহায়তার অভাব হ'ল আমি সত্তা ফ্রেমওয়ার্কের তুলনায় লিনকিউ এসকিউএল-তে বেছে নেওয়ার এক নম্বর কারণ। তারা যখন প্রতিশ্রুতি দিচ্ছে তখন তারা এটিকে পরবর্তী সংস্করণে অন্তর্ভুক্ত করার সময় আমি EF পুনর্বিবেচনা করতে পারি। কিছু অতিরিক্ত প্রকল্প আছে যা EF এর জন্য পোকো করে, তবে পরিষ্কারভাবে যথেষ্ট নয়।
জোসেফ ফেরিস

27
ক্ষেত্রে যদি কেউ (আমার মতো) জানে না যে পোকো কী বোঝায়: সাদামাটা পুরানো সিএলআর অবজেক্ট
সিবিও

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

3
আমি শুনেছি Poco মতিন 4 সম্ভব
PositiveGuy

8
পোকো সমর্থন আজকাল উপলভ্য এবং উত্তরাধিকার আর সত্তা শ্রেণীর জন্য প্রয়োজনীয়তা নেই @ কফিএডডিক্ট পোকো একটি নির্দিষ্ট কাঠামোর উপর নির্ভরতা ছাড়াই কেবল একটি সহজ অবজেক্ট এবং আধুনিক সত্তা কাঠামোর নিদর্শনগুলির একটি বড় অংশ
ক্রিস ম্যাকগ্রা

46

আমি একটি খুব ভাল উত্তর পাওয়া এখানে যা ব্যাখ্যা সহজ ভাষায় কি ব্যবহার করার জন্য:

কোন ফ্রেমওয়ার্কের জন্য থাম্বের মূল নিয়মটি হ'ল এটি কীভাবে আপনার উপস্থাপনা স্তরে আপনার ডেটা সম্পাদনা করার পরিকল্পনা করা যায়।

  • লিনক-টু-এসকিএল - আপনি যদি আপনার উপস্থাপনা স্তরে আপনার ডেটার এক থেকে এক সম্পর্কের সম্পাদনা করার পরিকল্পনা করেন তবে এই ফ্রেমওয়ার্কটি ব্যবহার করুন। এর অর্থ আপনি কোনও একটি ভিউ বা পৃষ্ঠায় একাধিক টেবিল থেকে ডেটা একত্রিত করার পরিকল্পনা করেন না।

  • সত্তা ফ্রেমওয়ার্ক - আপনি যদি নিজের ভিউ বা পৃষ্ঠায় একাধিক টেবিল থেকে ডেটা একত্রিত করার পরিকল্পনা করেন তবে এই ফ্রেমওয়ার্কটি ব্যবহার করুন। এই পরিষ্কার করার জন্য, উপরের শর্তাদি এমন ডেটাগুলির সাথে সুনির্দিষ্ট যা কেবলমাত্র প্রদর্শিত না হয়ে আপনার ভিউ বা পৃষ্ঠায় হেরফের করা হবে। এই বুঝতে গুরুত্বপূর্ণ।

সত্তা ফ্রেমওয়ার্কের সাহায্যে আপনি একটি সম্পাদনযোগ্য ফর্মের মধ্যে উপস্থাপনা স্তরটিতে উপস্থাপন করতে একসাথে টেবিলযুক্ত ডেটা "মার্জ" করতে সক্ষম হবেন এবং তারপরে সেই ফর্মটি জমা দেওয়া হবে, তখন EF বিভিন্ন টেবিল থেকে সমস্ত ডেটা আপডেট করার পদ্ধতি জানতে পারবে will

এল 2 এস এর চেয়ে বেশি সম্ভবত EF বেছে নেওয়ার আরও সঠিক কারণ রয়েছে তবে এটি সম্ভবত বোঝার পক্ষে সহজ হবে। L2S দেখার উপস্থাপনাটির জন্য ডেটা মার্জ করার ক্ষমতা নেই।


36

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

আমার বর্তমান চাকরিতে আমাদের 200+ টেবিল সহ একটি ডাটাবেস রয়েছে। প্রচুর খারাপ সমাধান সহ একটি পুরাতন ডাটাবেস তাই সেখানে আমি লিনক 2 এসকিএল-এর উপরে সত্তা ফ্রেমওয়ার্কের সুবিধা দেখতে পেলাম তবে তবুও আমি ডাটাবেসটিকে নতুন করে ডিজাইন করতে পছন্দ করব যেহেতু ডাটাবেসটি অ্যাপ্লিকেশনের ইঞ্জিন এবং যদি ডাটাবেসটি খারাপভাবে ডিজাইন করে ধীর হয় তবে আমার অ্যাপ্লিকেশনটি ধীর হবে। এই জাতীয় ডেটাবেজে সত্তা কাঠামো ব্যবহার করা খারাপ মডেলটি ছদ্মবেশে কুইকফিক্সের মতো মনে হয় তবে এটি কখনই আপনার যেমন ডেটাবেস থেকে পাওয়া খারাপ কার্য সম্পাদন করতে পারে না।


1
আপনার বিন্দুটি অনুপস্থিত - এমনকি ছোট ডাটাবেস সহ, আপনি ডাটাবেস টেবিল এবং কোড / ডোমেন অবজেক্টের মধ্যে 1: 1 টির সম্পর্কের চেয়ে আলাদা কিছু পেতে চাইতে পারেন। কেবল বাস / ডোমেন অবজেক্টে আপনি কত বিমূর্ততা চান তা নির্ভর করে।
আলকেমিক্যাল

18
আমি বুঝতে পেরেছি :) আজ আমি আমার ব্যবসায়িক সত্ত্বাগুলি হ্যান্ডকোড করতে চাই। আমি এখনও লিনক 2 এসকিএল ব্যবহার করি তবে কেবল আমার সংগ্রহস্থলের ভিতরেই যেখানে আমি লিনক 2 এসকিএল এবং ডেটা লিনক 2 এসকিএল সত্তাকে আমার কাস্টম ব্যবসায়িক সত্তায় রূপান্তর করি data একটি বা ম্যাপার ব্যবহারের চেয়ে কিছুটা বেশি কাজ হতে পারে তবে আমি আমার ব্যবসায়ের স্তরটি কোনও ওআর-ম্যাপার নির্দিষ্ট কোড থেকে মুক্ত রাখতে চাই।
তেরজেটাইল

25

2
উত্তরের কিছু জিনিস সঠিক নয়। আপনি যদি প্রথম কোডটি ব্যবহার করেন তবে একটি ইডিএমএক্স প্রয়োজন হয় না। আপনি যখন প্রথম কোড ব্যবহার করছেন তখন ডিআই কীভাবে কার্যকর হয় তা আমি বুঝতে পারি না।
মার্টেন

1
এছাড়াও, লিনক থেকে এসকিউএল মডেল ক্লাসগুলি থেকে একটি সূক্ষ্ম সূক্ষ্ম ডিবি তৈরি করতে পারে। এটি নিজেও ডিবি উত্পন্ন করতে পারে কিনা তা নিশ্চিত নন, তবে স্কিমা এবং টেবিলগুলি লিঙ্কের মধ্যে এসকিউএল এর সক্ষমতাতে চলে আসে।
টম লিন্ট

উত্তরের জন্য ধন্যবাদ, আমি মনে করি যে কেউ যখন ব্যবহার করতে পারেন তখন ডাটাবেস থেকে কোড / ম্যাপিং তৈরি করতে sqlmetal.exe ডকস.মাইক্রোসফট.ফেন / ডটনেট / ফ্রেমওয়ার্ক / টোলস / ব্যবহার করতে পারেনLinq to SQL
বিনোদ শ্রীবাস্তব

23

এখানে দেওয়া উত্তরগুলি লিনক 2 এসকিএল এবং ইএফ এর মধ্যে অনেকগুলি পার্থক্যকে কভার করেছে, তবে একটি মূল বিষয় রয়েছে যা খুব বেশি মনোযোগ দেওয়া হয়নি: লিনক 2 এসকিএল কেবল এসকিউএল সার্ভারকে সমর্থন করে যেখানে EF নীচের আরডিবিএমএস সরবরাহকারী রয়েছে:

মাইক্রোসফ্ট সরবরাহ করেছেন:

  • এসকিউএল সার্ভার, ওবিডিসি এবং ওএলই ডিবি-র জন্য ADO.NET ড্রাইভার

তৃতীয় পক্ষের সরবরাহকারীদের মাধ্যমে:

  • মাইএসকিউএল
  • আকাশবাণী
  • DB2
  • VistaDB
  • SQLite
  • পোস্টগ্রি
  • Informix
  • থেকে U2
  • সাইবেস
  • Synergex
  • Firebird
  • Npgsql

কিছু নাম।

এটি আপনার সম্পর্কিত সম্পর্কিত স্টোরের তুলনায় EF কে একটি শক্তিশালী প্রোগ্রামিং বিমূর্ততা করে তোলে, এর অর্থ বিকাশকারীদের অন্তর্নিহিত ডেটা স্টোর নির্বিশেষে কাজ করার জন্য একটি ধারাবাহিক প্রোগ্রামিং মডেল রয়েছে। আপনি যখন এমন একটি পণ্য বিকাশ করছেন যা আপনি নিশ্চিত করতে চান এটি সাধারণ আরডিবিএমএসের বিস্তৃত পরিসরের সাথে হস্তক্ষেপ করবে situations

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


15

আমি দেখতে পেয়েছি যে EF ব্যবহার করার সময় আমি একই ডাটাবেস মডেলের মধ্যে একাধিক ডাটাবেস ব্যবহার করতে পারি না। তবে লিনক 2 এসকিএল-তে আমি স্কিমার নামগুলি উপাত্তের সাথে ডেটাবেসের নাম দিয়ে উপস্থাপন করতে পারি।

আমি লিনক 2 এসকিউএল নিয়ে মূলত কাজ শুরু করার এটির একটি কারণ ছিল। আমি জানি না যে ইএফ এখনও এই কার্যকারিতাটির অনুমতি দিয়েছে কিনা, তবে আমি মনে করি এটি পড়ার কথা মনে আছে এটি এটির অনুমতি না দেওয়ার জন্য এটি করা হয়েছিল।


12

যদি আপনার ডাটাবেসটি সোজা এবং সহজ হয়, লিনকিউ থেকে এসকিউএল করবে। আপনার টেবিলগুলির শীর্ষে যদি আপনার যৌক্তিক / বিমূর্ত সংস্থাগুলির প্রয়োজন হয় তবে সত্তা ফ্রেমওয়ার্কের জন্য যান।


4
সত্তা ফ্রেমওয়ার্ক ডাটাবেসের শীর্ষের বিমূর্ততার একটি স্তর অনুমতি দেয়। আজ অনেকগুলি ওআর ম্যাপারদের সমস্যা (আমার মতে) তারা টেবিল এবং ক্লাসগুলির মধ্যে 1 থেকে 1 ম্যাপিং সরবরাহ করে। ডাটাবেস মডেলটি সর্বদা আমাদের ব্যবসায়ের মডেলের ক্ষেত্রে যেভাবে চিন্তা করে তা প্রতিফলিত করে না।
সেনফো

জায়গার বাইরে চলে গেছে। যাইহোক, আমি উপরে যা বলেছি তার ভিত্তিতে, আমি যুক্তি দেব যে আপনার উত্তরটি সম্পূর্ণ নয় isn't
সেনফো

7
আমি মনে করি এটি সত্যই খারাপ পরামর্শ। আপনার ডাটাবেসের সরলতা বা জটিলতা নির্বিশেষে এল 2 এস ভাল । আসল ফাঁদে উদ্বেগের যথাযথ বিচ্ছেদ নেই। যদি আপনি আপনার ব্যবসায়ের স্তর এবং আপনার ডেটা অ্যাক্সেস স্তরটি মার্জ করার চেষ্টা করেন এবং আপনার লিনকড আপ অবজেক্টগুলি সমস্ত কিছুর জন্য ব্যবহার করেন, তবে আপনি এল 2 এস সীমাবদ্ধ দেখতে পাবেন। তবে এটি অত্যধিক সরল ও একঘেয়ে নকশার সমস্যা। এল 2 এস দুর্দান্ত ডাল তৈরি করে এবং যদি আপনি জিজ্ঞাসাবাদ এবং অধ্যবসায়কে আপনার ব্যবসায়িক বিধি থেকে আলাদা উদ্বেগ বিবেচনা করেন, তবে আপনি দীর্ঘমেয়াদে অনেকগুলি অঞ্চলে নিজেকে অনেক ঝামেলা বাঁচাতে পারবেন।
mattmc3

1
এটি আমাকে কিছুই বলে না আপনার পদ সহজ কি?
PositiveGuy

1
এবং "যৌক্তিক / বিমূর্ত" প্রয়োজনের উদাহরণ হিসাবে আপনার অর্থ কী? হ্যাঁ আমি জানি বিমূর্ততা কী তা কিন্তু আপনার প্রসঙ্গে একটি উদাহরণ দয়া করে ... আপনি যা বলছেন ঠিক তা আমাকে ব্যাখ্যা করার জন্য ... এটি বর্ণনা করুন, আমাকে কেবল সাধারণ বদনাম দেবেন না ... এটাই স্পিকারের সাথে সম্পর্কিত যা বলছে এই শব্দগুলি তাই আপনার এর অর্থ কী তা আমার কোনও ধারণা নেই।
PositiveGuy

8

উভয় এখনও অনন্য এসকিউএল 2008 ডেটাটাইপ সমর্থন করে না। আমার দৃষ্টিকোণ থেকে পার্থক্য হ'ল সত্তা এখনও আমার ভৌগলিক ডেটাটাইপের আশেপাশে ভবিষ্যতের কিছু রিলিজে একটি মডেল তৈরি করার সুযোগ পেয়েছেন, এবং লিনক থেকে এসকিউএল পরিত্যাজ্য হন, কখনও হবে না।

ভাবুন যে হাইবারনেট, বা ওপেনএকসেসের সাথে কী হচ্ছে ...


3
এসকিউএল সার্ভার ২০০৩ স্পেশিয়াল ডেটাটাইপস (ওপেন জিওপ্যাটিয়াল কনসোর্টিয়াম ওজিএস) সত্তা ফ্রেমওয়ার্ক ৫ হিসাবে সমর্থিত Other অন্যান্য সরবরাহকারী (ওরাকলের জন্য ডিভার্ট )ও সমর্থিত। এমএসডিএন.মাইক্রোসফটকম /en-us/data/dn194325 দেখুন ।
সাবসি

6

আমি মনে করি আপনার যদি মাঝখানে কোনও অদ্ভুত জিনিস না দিয়ে দ্রুত কিছু বিকাশ করা দরকার এবং আপনার টেবিলগুলি উপস্থাপন করে এমন সত্ত্বা রাখার জন্য আপনার সুবিধার দরকার আছে:

লিনক 2 এসকিউএল একটি ভাল মিত্র হতে পারে, এটি লিনকিউ দিয়ে একটি দুর্দান্ত বিকাশের সময়কে মুক্ত করে।


4
"মাঝখানে কোনও অদ্ভুত জিনিস নেই", ঠিক আছে আপনি এর দ্বারা কী বোঝাতে চাইছেন। একটি "মাঝখানে অদ্ভুত জিনিস" উদাহরণ
PositiveGuy

এই উত্তরটি সম্পাদনা করা বা মুছে ফেলা ভালো লাগবে, এটি আধুনিক বিকাশের জন্য আর কার্যকর নয় এবং লোককে ভুল ট্র্যাকে আনতে পারে।
গিয়ুলিও ক্যাক্সিন

6

আমি গ্রাহকের জন্য কাজ করছি যার একটি বড় প্রকল্প রয়েছে যা লিনক-টু-এসকিউএল ব্যবহার করছে। প্রকল্পটি যখন শুরু হয়েছিল তখন এটি ছিল সুস্পষ্ট পছন্দ, কারণ সত্তা ফ্রেমওয়ার্কের সেই সময়ে কিছু বড় বৈশিষ্ট্যগুলির অভাব ছিল এবং লিনক-টু-এসকিউএল এর অভিনয় আরও ভাল ছিল much

এখন ইএফ বিকশিত হয়েছে এবং লিনাক-টু-এসকিউএল তে অ্যাসিঙ্ক সাপোর্টের অভাব রয়েছে, যা অত্যন্ত স্কেলযোগ্য পরিষেবাগুলির জন্য দুর্দান্ত। আমাদের মাঝে প্রতি সেকেন্ডে 100+ অনুরোধ রয়েছে এবং আমরা আমাদের ডেটাবেসগুলিকে অনুকূলিত করেছি সত্ত্বেও, বেশিরভাগ ক্যোরিয়াসগুলি সম্পূর্ণ হতে কয়েক মিলিসেকেন্ড সময় নেয়। সিঙ্ক্রোনাস ডাটাবেস কলগুলির কারণে, থ্রেডটি ব্লক করা আছে এবং অন্যান্য অনুরোধের জন্য উপলব্ধ নয়।

আমরা কেবলমাত্র এই বৈশিষ্ট্যের জন্য সত্তা ফ্রেমওয়ার্কে স্যুইচ করার চিন্তাভাবনা করছি। এটি লজ্জাজনক যে মাইক্রোসফ্ট লিনক-টু-এসকিউএল হিসাবে অ্যাসিঙ্ক সমর্থন বাস্তবায়ন করেনি (বা এটি উন্মুক্ত উত্সাহিত করেছে, যাতে সম্প্রদায়টি এটি করতে পারে)।

সংযোজন ডিসেম্বর 2018: মাইক্রোসফ্ট .NET কোর এবং লিনক -2-এসকিউএল .NET কোর সমর্থন করে না, তাই আপনি ভবিষ্যতে EF.Core এ মাইগ্রেট করতে পারবেন তা নিশ্চিত করার জন্য আপনাকে EF এ স্থানান্তর করতে হবে।

এলএলবিএলজেনের মতো অন্যান্য কিছু বিকল্প বিবেচনা করতে হবে । এটি একটি পরিপক্ক ওআরএম সমাধান যা ইতিমধ্যে একটি দীর্ঘ সময় বিদ্যমান এবং এটি এমএস ডেটা সলিউশন (ওডিবিসি, এডিও, অ্যাডো.নেট, লিনক-২-এসকিউএল, ইএফ, ইএফ.কম) এর আরও ভবিষ্যতের প্রমাণ হিসাবে প্রমাণিত হয়েছে।


2

Linq টু এসকিউএল

এটি সরবরাহকারী এটি কেবল এসকিউএল সার্ভারকে সমর্থন করে। .NET অবজেক্টগুলিতে এসকিউএল সার্ভার ডাটাবেস টেবিলগুলি ম্যাপ করার জন্য এটি ম্যাপিং প্রযুক্তি। কোনও ওআরএম-এ মাইক্রোসফ্টের প্রথম প্রচেষ্টা - অবজেক্ট-রিলেশনাল ম্যাপার।

Linq টু সংস্থাগুলো

একই ধারণা, তবে ওআরএম হিসাবে পটভূমিতে সত্তা ফ্রেমওয়ার্ক ব্যবহার করে - আবার মাইক্রোসফ্ট থেকে, এটি সত্তা কাঠামোর একাধিক ডাটাবেসকে সমর্থন করে যে বিকাশকারী বিভিন্ন ডাটাবেসে কোনও ক্রিয়াকলাপ সম্পাদনের জন্য সিনট্যাক্স শেখার প্রয়োজন হয় না কোনও ডেটাবেজে কাজ করতে পারে

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

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