数据库中的实体框架ICollections

时间:2014-04-03 17:02:24

标签: sql-server entity-framework

我正在使用signalR tutorial中的数据库实现示例来查找已连接用户的connectionId。

以下是模型的代码:

public class UserContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Connection> Connections { get; set; }
}

public class User
{
    [Key]
    public string UserName { get; set; }
    public ICollection<Connection> Connections { get; set; }
}

public class Connection
{
    public string ConnectionID { get; set; }
    public string UserAgent { get; set; }
    public bool Connected { get; set; }
}

我想使用数据库优先模型,因为某些表已经实现并填充。我是Entity Framework的新手,很难理解用户表如何在数据库中表示?

用户表
ColumnName DataType AllowNulls
___________________________
id bigint(自动递增PK)
UserName varchar(20)
连接???

2 个答案:

答案 0 :(得分:0)

http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d

When right-clicking on a C# project, the following context menu functions are supported:

    Reverse Engineer Code First - Generates POCO classes, derived DbContext and Code First mapping for an existing database. 

通过使用这种“逆向工程”工具,您可以了解更多有关工作方式的信息......比大多数方式,恕我直言。

再一次,对它进行逆向工程,因为你可能比其他方式更熟悉db / ddl。

答案 1 :(得分:0)

如果您使用数据库优先,那么它取决于您在数据库中的表示方式;首先编写数据库,然后将其映射到.NET类型。如果您首先使用代码,并希望查看生成的架构的外观,最简单的方法就是运行它。