小编Fer*_*osa的帖子

致命:在添加git remote之后拒绝合并不相关的历史记录

我已经在我正在使用的文件夹中添加了一个远程存储库:

git remote add origin https://github.com/<username>/<repo>.git
Run Code Online (Sandbox Code Playgroud)

但是当我打字的时候

git pull origin master
Run Code Online (Sandbox Code Playgroud)

来自https://github.co/username/xxxxx

*分支主控 - > FETCH_HEAD

致命的:拒绝合并不相关的历史

当我打字的时候

From https://github.com/<username>/<repo>
    * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories
Run Code Online (Sandbox Code Playgroud)

git github

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

如何在运行时在DatabaseGeneratedOption.Identity,Computed和None之间切换,而不必生成空的DbMigrations

我正在将一个遗留数据库迁移到一个新数据库,我们需要主要通过Entity Framework Code-First来访问和"管理"(尽管它可能听起来像是一样).

我们正在使用MS SQL Server 2014.

  1. 遗留数据库包含一些带有计算列的表.典型的GUID和DateTime的东西.

  2. 从技术上讲,这些列没有计算列规范,而是使用NEWID()和给定默认值GETDATE()

我们都知道配置DbContext处理这些属性非常容易,如下所示:

modelBuilder.Entity<Foo>()
            .Property(t => t.Guid)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
modelBuilder.Entity<Bar>()
            .Property(t => t.DTS)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
Run Code Online (Sandbox Code Playgroud)

上述内容将指示实体框架忽略在INSERTs和期间提交此类属性的任何提供值UPDATEs.

  1. 但现在我们需要允许导入旧记录并维护OLD值,包括PRIMARY KEY,标记为IDENTITY

    1. 这意味着我们将不得不设置Id,Guid以及DTS性能DatabaseGeneratedOption.None,同时插入这些记录.

    2. 对于这种情况Id,我们必须以某种方式SET IDENTITY_INSERT ... ON/OFF在连接会话中执行.

    3. 我们也希望通过Code-First执行此导入过程.

  2. 如果我修改模型并"临时"并DatabaseGeneratedOption.None在创建数据库之后将这些属性设置为,我们将得到典型的:

    自创建数据库以来,支持上下文的模型已更改.考虑使用Code First Migrations来更新数据库.

  3. 我知道我们可以生成一个空的编码迁移,-IgnoreChanges以"建立"这个最新版本的上下文,但这不是一个可接受的策略,因为我们必须来回运行空迁移这个目的.


半个答案:

我们考虑过将这些属性赋予可空类型,即

public class Foo
{
    ...
    public Guid? Guid { get; …
Run Code Online (Sandbox Code Playgroud)

sql-server entity-framework identity-insert ef-code-first ef-migrations

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

实体框架中的"克隆"EntityConnections和ObjectContexts

(这曾经是一个由两部分组成的问题,但由于第二部分确实是重要的部分,我决定将其拆分为两个单独的帖子.请参阅使用序列化在第二部分的实体框架中的两个ObjectContexts之间复制实体.

我想为我的实体模型创建一个相当通用的"克隆"数据库.此外,我可能需要支持不同的提供商等.我正在使用ObjectContextAPI.

我已经知道这个问题EntityConnectionStringBuilder MDSN文档示例,但是我需要知道是否有一种编程方式来获取值以初始化ProviderMetadata属性EntityConnectionStringBuilder

using (var sourceContext = new EntityContext()) {
    var sourceConnection = (EntityConnection) sourceContext.Connection;
    var targetConnectionBuilder = new EntityConnectionStringBuilder();

    targetConnectionBuilder.ProviderConnectionString = GetTargetConnectionString();
    targetConnectionBuilder.Provider = "System.Data.SqlClient"; // want code
    targetConnectionBuilder.Metadata = "res://*/EntityModel.csdl|res://*/EntityModel.ssdl|res://*/EntityModel.msl"; // want code

    using (var targetContext = new EntityContext(targetConnectionBuilder.ConnectionString)) {
        if (!targetContext.DatabaseExists())
            targetContext.CreateDatabase();

        // how to copy all data from the source DB to the target DB???
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework .net-4.5 entity-framework-5

5
推荐指数
1
解决办法
467
查看次数

在显式迁移挂起时添加迁移

因此,当我没有DB同步时(直到最新的迁移,实际上根本没有DB)并且已经对我的模型进行了实质性更改,我在尝试生成迁移时遇到了一个基本问题.

这是具体细节:

  1. 有一系列显式迁移.
  2. 没有数据库.简而言之,有许多待定的更改.
  3. 对模型/上下文进行了更改.
  4. 在尝试添加迁移时,它会抱怨说明确的迁移是未决的.
  5. 如果我尝试通过Update-Database或migrate.exe执行迁移(并使我的数据库同步),它将失败(成功应用显式迁移后),并且未启用自动迁移.
  6. 我也不想启用自动迁移(以防止提交任何架构更改并在代码中进行解释.)

我意识到在#5失败后我现在可以运行#4.然后重新尝试#5和voilá.

我的问题是,如果这是解决这种愚蠢局面的预期方法.

.net c# entity-framework ef-code-first ef-migrations

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

使用序列化在实体框架中的两个ObjectContexts之间复制实体

前言

我知道这可能已经被认为是一个疯狂的问题,但我正在寻找有关如何继续将所有数据(即所有实体和关系)从一个新创建的支持复制到另一个商店的最受过教育的建议和PROVEN建议.请参阅实体框架中的"克隆"EntityConnections和ObjectContexts以了解我是如何设置它的.ObjectContextObjectContext


介绍

我已经看到了关于Entity Framework的克隆数据,但是:

  1. 我正在寻找整个辣酱玉米饼馅,即整个对象图:所有实体和关系.稍后,我会选择对象图的哪些部分进行更精细的选择

  2. 根据我下面的更新,我没有使序列化工作,但仅限于特殊情况.我觉得它真的是一个不那么复杂的任务,但它却出人意料地具有挑战性.我肯定需要一些有关如何使其工作的见解.


步骤1

好的,这是我到目前为止所尝试的.

我知道当我使用Detach/ Attachpower duo时,关系是kaput- 实际上想要保留整个对象图.

因此,我在考虑使用以下MergeOption.NoTracking选项加载根实体:

var serializer = new DataContractSerializer(typeof(Root));

var query = (ObjectQuery<Root>) sourceContext.Roots
    .Include(d => d.Children.Select(c => c.MoreChildren.Select(r => r.EvenMoreChildren)))
    .Include(d => d.Children.Select(c => c.MoreChildren.Select(r => r.MoreAndMoreChildren)))
    .Include(d => d.Children.Select(c => c.MoreChildren.Select(r => r.Shizzle)));

foreach (var d in query.Execute(MergeOption.NoTracking)) {
    //sourceContext.Detach(d); // not needed
    Print(d);
    using …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization entity-framework xml-serialization

3
推荐指数
1
解决办法
3228
查看次数

IIS上的WCF服务.如何摆脱URL路径中的"Service.svc"组件?

我在IIS上托管了WCF服务.出于商业原因,我不能发布此实例的公共URL,但我相信你会得到我的意思:

问题是,为了到达我的端点,似乎我已经包含Service.svc了路径段的一部分,即,我必须使用这样的URL:

http://<domain>/<app-name>/Service.svc/<relative-path>

我怎么能避免这个?我的意思是,我想通过以下方式访问我的服务:

http://<domain>/<app-name>/<relative-path>

当我在开发过程中自我托管服务时,我完全能够做到这一点.


最后,但这不是那么超然,浏览到http://<domain>/<AppName>/Service.svcURL会显示标准服务信息页面:

有没有办法可以防止这种情况发生?

在此输入图像描述

.net c# iis wcf wcf-binding

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