2010-08-07 10 views
0

Я читаю 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?

ответ

1

Это не сгенерированный код. Вот как вы используете сопоставления Linq для сопоставления ваших классов с вашей базой данных.

Вы просто пишете его в CS-файле. Он может идти куда угодно, но если вы используете ASP.NET MVC, вы обычно помещаете его в папку «Модели».

Смотреть это: http://msdn.microsoft.com/en-us/library/bb386971.aspx

+0

Там есть лучшее объяснение здесь: http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/09/23/24907.aspx –

+0

Я удивлен, что это фактически не сгенерированный код. Я буду придерживаться моделей Django. –

+0

Да, это немного неуклюже. Атрибуты - это то, что сообщает DataContext, где искать данные в вашей базе данных. Новый подход Code-First в Entity Framework намного лучше, но на данном этапе это просто CTP. –

Смежные вопросы