Я читаю Pro ASP.Net MVC2, и я понял, что ничего не объясняется достаточно хорошо. Например, следующий говорит мне, чтобы создать это C# код вручную:Можете ли вы помочь мне понять этот код на C#?
Реализация Домен модель Auctions С помощью LINQ к SQL, вы можете настроить сопоставления между классами # C и подразумеваемой схемой либо баз данных, украшая классы со специальными атрибутами или путем записи файла конфигурации XML. Преимущество XML-варианта состоит в том, что артефакты персистентности полностью удалены из ваших классов домена 4, а недостаток - это не так очевидно на первый взгляд. Для простоты я буду компрометировать здесь и использовать атрибуты . Вот модель домена классы Аукционы теперь полностью отмечены на LINQ к SQL: 5
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.Linq.Mapping;
using System.Data.Linq;
[Table(Name="Members")]
public class Member
{
[Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)]
internal int MemberID { get; set; }
[Column]
public string LoginName { get; set; }
[Column]
public int ReputationPoints { get; set; }
}
[Table(Name = "Items")]
public class Item
{
[Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)]
public int ItemID { get; internal set; }
[Column]
public string Title { get; set; }
[Column]
public string Description { get; set; }
[Column]
public DateTime AuctionEndDate { get; set; }
[Association(OtherKey = "ItemID")]
private EntitySet<Bid> _bids = new EntitySet<Bid>();
public IList<Bid> Bids { get { return _bids.ToList().AsReadOnly(); } }
}
Где именно я должен написать это? Или он просто отображает сгенерированный код с помощью Linq-to-sql DBML?
Там есть лучшее объяснение здесь: http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/09/23/24907.aspx –
Я удивлен, что это фактически не сгенерированный код. Я буду придерживаться моделей Django. –
Да, это немного неуклюже. Атрибуты - это то, что сообщает DataContext, где искать данные в вашей базе данных. Новый подход Code-First в Entity Framework намного лучше, но на данном этапе это просто CTP. –