2010-08-07 4 views
0

Je lis Pro ASP.Net MVC2 et je suis arrivé à un point où rien n'est assez bien expliqué. Par exemple, ce qui suit me dit de créer ce code C# manuellement:Pouvez-vous m'aider à comprendre ce code C#?

Mise en œuvre du Enchères modèle de domaine Avec LINQ to SQL, vous pouvez configurer les correspondances entre les classes C# et un schéma de base de données implicite soit en décorant les classes avec des attributs spéciaux ou en écrivant un fichier de configuration XML. L'option XML a l'avantage que les artefacts de persistance sont totalement supprimés de vos classes de domaine, 4 mais l'inconvénient que ce n'est pas si évident à première vue. Pour plus de simplicité, je vais compromettre ici et utiliser les attributs . Voici les classes des ventes aux enchères du modèle de domaine désormais entièrement marqué pour LINQ to 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(); } } 
} 

Où exactement ce que je dois écrire ceci dans? Ou est-ce qu'il affiche simplement du code généré par le DBML Linq-to-sql?

Répondre

1

Ce code n'est pas généré. C'est ainsi que vous utilisez les mappages Linq pour mapper vos classes à votre base de données.

Vous venez de l'écrire dans un fichier CS. Cela peut aller n'importe où, mais si vous utilisez ASP.NET MVC, vous le placez généralement dans le dossier Modèles.

Voir ceci: http://msdn.microsoft.com/en-us/library/bb386971.aspx

+0

Il y a une meilleure explication ici: http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/09/23/24907.aspx –

+0

Je suis étonné que c'est en fait pas de code généré. Je vais m'en tenir à mes modèles Django. –

+0

Oui, c'est un peu maladroit. Les attributs sont ce qui indique au DataContext où rechercher les données dans votre base de données. La nouvelle approche Code-First dans Entity Framework est bien meilleure, mais c'est juste une CTP à ce stade. –