关于LINQ to SQL的简单问题

时间:2011-05-28 06:08:44

标签: c# database linq-to-sql database-connection

我无法理解一件事。假设我已经拥有这些编码实体:

[Table(Name = "Rates")]
public class Rate
{
    private EntityRef<Product> _Product;

    [Column(IsPrimaryKey = true)]
    public String RateID 
    { get; set; }
    [Column]
    public String ProductID 
    { get; set; }
    [Column]
    public Double VolumeInTons 
    { get; set; }
    [Column]
    public Decimal Volume 
    { get; set; }
    [Column]
    public Decimal Cost 
    { get; set; }
    [Column]
    public UInt32 Year 
    { get; set; }

    [Association(Storage = "_Product", OtherKey = "ProductID")]
    public Product Product
    {
        get { return this._Product.Entity; }
        set { this._Product.Entity = value; }
    }
} 

[Table(Name="Products")]
public class Product
{
    private EntitySet<Rate> _Rates;

    [Column(IsPrimaryKey= true)]
    public String ProductID
    { get; set; }
    [Column]
    public String Name
    { get; set; }
    [Column]
    public String Category
    { get; set; }

    [Association(Storage="_Rates", OtherKey="ProductID")]
    public EntitySet<Rate> Rates
    {
        get { return this._Rates; }
        set { this._Rates.Assign(value); }
    }
}
  • 我是否应该使用相同的表定义连接到物理数据库(在我的应用程序中使用datacontext)?
  • 假设我创建了一个数据库。它应该包含相同的表定义还是LINQ to SQL创建它们?

1 个答案:

答案 0 :(得分:5)

如果您已有数据库,则可以从Visual Studio连接到该数据库,然后将表拖放到DataContext的设计模式中。然后,Visual Studio将为您生成相应的类。

或者,您可能正在回答的问题是,您已经拥有了生成的类(例如:来自与数据库不同的系统),并且您希望根据类定义创建数据库。然后,您应该在代码的早期某处调用DataContext.CreateDatabase(如Reniuz所述),并创建数据库。请注意,在下次运行时,您无需再次创建数据库。