相关疑难解决方法(0)

如何首先使用迁移向Entity Framework 4.3代码中的列添加描述?

我首先使用Entity Framework 4.3.1代码进行显式迁移.如何在实体配置类或迁移中添加列的描述,以便最终作为SQL Server中列的描述(例如2008 R2)?

我知道我可以编写一个DbMigration类的扩展方法,该方法将迁移事务中的sql迁移操作注册sp_updateextendedpropertysp_addextendedproperty过程调用,并在迁移Up方法中创建表后调用该扩展.但是,我还没有发现一种优雅的内置方式吗?拥有迁移的更改检测逻辑可以获取的属性并在scaffolded迁移中生成appropritate方法调用会很好.

.net c# sql-server-2008-r2 entity-framework-4.3

22
推荐指数
3
解决办法
9008
查看次数

如何使用Entity Framework重置LocalDB表?

有没有什么办法来补种的LocalDB表使用EF?

我不想使用这个SQL命令:

DBCC CHECKIDENT('TableName', RESEED, 0)
Run Code Online (Sandbox Code Playgroud)

仅供参考:我使用的是EF 6.1.

非常感谢.

c# sql t-sql entity-framework localdb

13
推荐指数
1
解决办法
7647
查看次数

使用单个LINQ查询使用Entity Framework删除多个记录

我正在尝试使用LINQ执行DELETE,这将生成单个查询.

我是这样做的:

// NorthwintEntities is an ADO.NET Entitity Data Model
var northwindEntities = new NorthwindEntities();
northwindEntities.Order_Details.Delete(o => o.Order_ID == 11076);
Run Code Online (Sandbox Code Playgroud)

这是我的扩展:

public static class EntityExtensions
{
    private static Regex rxTableName = new Regex(@"^FROM\s+(?<table>\[[^\]]*\](\.\[[^\]]*\]){0,2})\s+AS\s+(?<alias>\[[^\]]*\])", RegexOptions.Multiline);

    public static void Delete<T>(this ObjectSet<T> entity, Expression<Func<T, bool>> expression) where T : EntityObject
    {
        var selectQuery = entity.Where(expression).Select(x => 1);

        string selectQueryString = ((ObjectQuery)selectQuery).ToTraceString();

        string deleteQueryString = ConvertSqlSelectToDelete(selectQueryString);

        entity.Context.ExecuteStoreCommand(deleteQueryString);
    }

    private static string ConvertSqlSelectToDelete(string selectQuery)
    {
        if (selectQuery.IndexOf(" JOIN ") > -1)
        {
            throw new Exception("Query …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

11
推荐指数
2
解决办法
2万
查看次数

如何从Enity Framework中的元模型中获取多个到多个关系的实体到表映射

有没有什么办法可以让我们在实体框架中加入两个实体的基础"多对多表".

例如,如果我们有Product和Order实体,我们如何获得连接Product和Order表的底层连接表Product_Order.

任何帮助,将不胜感激.

mapping entity-framework metadata

7
推荐指数
1
解决办法
3329
查看次数

实体框架 - 从实体获取表名称

我正在使用Entity Framework 4.1和Code First方法.我能够获取我的实体的存储模型类型和列名:

var items = context.ObjectContext.MetadataWorkspace.GetItems<EntityType>(DataSpace.SSpace);

foreach (var i in items)
{
    Console.WriteLine("Table Name: {0}", i.Name);

    Console.WriteLine("Keys:");
    foreach (var key in i.KeyMembers)
        Console.WriteLine("\t{0} ({1})", key.Name, key.TypeUsage.EdmType.FullName);

    Console.WriteLine("Members:");
    foreach (var member in i.Members)
        Console.WriteLine("\t{0} ({1})", member.Name, member.TypeUsage.EdmType.FullName);
}
Run Code Online (Sandbox Code Playgroud)

我需要的是获取实体映射到的真实表名.有不同的方法来指定(通过使用Fluent-API .ToTable(),DataAnnotation [TableAttribute]).

有没有通用的方法来获得这些信息?

c# entity entity-framework modelmetadata ef-code-first

7
推荐指数
2
解决办法
2万
查看次数

如何以编程方式从实体获取具有模式名称的数据库表名称

我正在尝试获取实体的SQL表名称.当我使用MetadataWorkspace查询时,我从对象或存储空间获取大量信息.但架构名称和表名称不存在.

我尝试查询CSpace和SSpace的所有EntityType对象,我可以看到两者都正确列出,但我无法弄清楚如何从CSpace获取SSpace.

所以说我在对象模型中有一个名为User的类型 - 如何在数据库中找到带有模式名称(tkp.User)的表名?

有没有办法做到这一点?

c# linq entity-framework

4
推荐指数
1
解决办法
5853
查看次数

EF 5条件映射

我在我的MVC应用程序中使用EF 5数据库第一种方法.我的所有表都使用一个名为Deleted的字段,这是一个标记记录被删除的布尔字段.

我试图摆脱每次查询我的数据库时必须检查Deleted == false的要求.这种非常简单的方法是在edmx文件中使用条件映射,其中EF始终返回未删除的数据.这一切都很好.

但是,这个条件映射的问题是,当我想允许用户从地址簿中删除例如地址的某些记录时,我无法访问EF中的删除字段,因为我在条件映射中使用它,因此我必须寻找另一个允许用户删除记录的选项.

我想的方法是创建一个处理删除查询的存储过程,并在我想要删除记录时调用它.

有没有更好的方法呢?是否可以使删除字段可访问,即使它在条件映射中使用?

c# entity-framework asp.net-mvc-4

4
推荐指数
1
解决办法
2771
查看次数