小编myn*_*kow的帖子

EF CF手动配置多对多映射

我有一个现有的数据库.目前我正在尝试使用实体框架代码将新的Entity对象映射到该DB.以下是具有朋友集合的User类.正如您所看到的,这是与同一个表的多对多关系.如何将此关系映射到具有"user_id"和"friend_id"列的表"user_friend".

public class User
{
    private ICollection<User> _friends = new List<User>();
    public ICollection<User> Friends { get{return _firends;} }
}

moduleBuilder.Entity<User>().HasMany????.ToTable("user_friend");
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-code-first entity-framework-4.1

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

如何获取EnvDte.ActiveDocument的IWpfTextView?

我试图操纵Visual Studio文本编辑器滚动条值.问题是我只有dte.ActiveDocument,并且不可能从那里开始.

当VS启动时我的扩展只加载一次,我捕获了dte.Events.CommandEvents.在某些时候,我想更改ActiveDocument的滚动条值.要做到这一点,我需要IWpfTextView或ITextView.你知道我怎么能得到那个对象的实例?

internal class MyExtension
    {
        private CommandEvents commandEvents;

        private DTE dte;

        public MyExtension(DTE dte)
        {
            this.dte = dte;
            commandEvents = dte.Events.CommandEvents;
            commandEvents.BeforeExecute += commandEvents_BeforeExecute;
        }

        void commandEvents_BeforeExecute(string Guid, int ID, object CustomIn, object CustomOut, ref bool CancelDefault)
        {
            var doc = dte.ActiveDocument
            // CHANGE SCROLLBAR VALUES HERE
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# visual-studio envdte

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

Asp.Net Identity - 不区分大小写的电子邮件和用户名

有没有办法让 Asp.Net Identity 的电子邮件地址和用户名不区分大小写?

目前,如果我调用“FindByEmailAsync(email)”,只有在电子邮件地址完全按照键入的方式存储时(区分大小写),它才会起作用

asp.net claims-based-identity asp.net-identity

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

如何从另一个构建文件执行nant构建文件?

我有一个很大的项目,我创建了一些构建文件,我在不同的场景中使用,包括ccnet.所以,我有BF1.build和BF2.build

我只是想在BF1中某处从BF2.build调用/执行脚本

nant nant-task

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

使用NHibernate处理大量记录

使用NHibernate加载集合和更新所有项目的最佳方法是什么.当前代码在其自己的事务中加载50个对象并处理每个对象(如果1失败,则其他事件都可以).

NH Profiler说每个会话有太多的SQL查询.

毕竟,您如何看待这段代码?

using (var session = sessionFactory.OpenSession())
        {
            var myCollection =
                (from obj in session.Query<MyObject>()
                 select obj).Take(50);

            foreach (var item in myCollection)
            {
                using (var tx = session.BeginTransaction())
                {
                    try
                    {
                        //  Do some stuff...
                        session.Update(item);
                        tx.Commit();
                    }
                    catch (Exception)
                    {
                        tx.Rollback();
                    }
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

nhibernate

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

Wix\heat.exe奇怪的输出

我有一个目录,其中有一个文件:Iesi.Collections.dll.

当我运行以下命令时:

heat.exe dir D:\MyDir -cg References -srd -o D:\Product.wxs -nologo -gg -g1 -dr INSTALLFOLDER
Run Code Online (Sandbox Code Playgroud)

我得到了很奇怪的输出.可能只对我来说很奇怪所以请向我解释一下.为什么我得到这些注册表值?对于像MassTransit或RabbitMQ这样的第三方dll,我得到相同的结果.

预期产量:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <DirectoryRef Id="INSTALLFOLDER" />
    </Fragment>
    <Fragment>
        <ComponentGroup Id="References">
            <Component Id="cmpAD8551805C0E384D4FD6CD718C5E8381" Directory="INSTALLFOLDER" Guid="4253B9B4-21E8-40C8-A71A-A8308BD96F3C">
                <File Id="fil1300C7FBD2C9D42B5651E43A08F7DA1E" KeyPath="yes" Source="SourceDir\Iesi.Collections.dll" />
            </Component>
        </ComponentGroup>
    </Fragment>
</Wix>
Run Code Online (Sandbox Code Playgroud)

当前输出:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <DirectoryRef Id="INSTALLFOLDER" />
    </Fragment>
    <Fragment>
        <ComponentGroup Id="References">
            <Component Id="cmpAD8551805C0E384D4FD6CD718C5E8381" Directory="INSTALLFOLDER" Guid="4253B9B4-21E8-40C8-A71A-A8308BD96F3C">
                <Class Id="{0436B9AC-9C09-3DF4-B3E9-AA70B658FB39}" Context="InprocServer32" Description="Iesi.Collections.ListSet" ThreadingModel="both" ForeignServer="mscoree.dll">
                    <ProgId Id="Iesi.Collections.ListSet" Description="Iesi.Collections.ListSet" />
                </Class>
                <Class Id="{09A2D117-B7B7-3905-88A7-AB20EE344B9F}" Context="InprocServer32" Description="Iesi.Collections.HashedSet" ThreadingModel="both" ForeignServer="mscoree.dll">
                    <ProgId Id="Iesi.Collections.HashedSet" …
Run Code Online (Sandbox Code Playgroud)

wix heat

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

git alias 用于清理/重置目录中的所有存储库

我想以递归方式清理/重置目录中的所有 git 存储库。

如果我执行以下命令,它会按预期工作:

find . -name .git -type d -execdir sh -c "git clean -xdf" \;
Run Code Online (Sandbox Code Playgroud)

我在将命令转换为 git 别名时遇到问题:

xxx = "!f() { find . -name .git -type d -execdir sh -c "git clean -xdf" ; ; }; f; "
Run Code Online (Sandbox Code Playgroud)

我试图修复诸如syntax error near unexpected token;'` 之类的错误,但是我绕了一圈却没有成功。

请帮我创建别名。10倍

git bash

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

EF CF:与其他信息的多对多关系

我们有遗留数据库,我们将新对象和道具映射到旧表和列.到现在为止还挺好.我们有成功映射的多对多关系.中间表包含其他数据.当我们尝试将中间表映射到对象时,我们得到了已定义映射的异常.如果我们从关系的任何一侧删除映射,我们会得到表缺失的错误(ofc,我们期待那样).我可以使用NHibernate轻松地做到这一点,我开始认为EF缺少真正的很多功能.那么,请告诉我,我错了,我们可以用EF做到这一点.

最好的祝福

编辑:这是一个失败的虚拟样本.

class User
{
  public ICollection<User> Followers{get;set;}
}

class UserRelation
{
  public User User{get;set;}
  public User Follower{get;set;}
  public DateTime CreatedOn{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

用户映射

modelBuilder
     .Entity<User>()
     .HasMany<User>(user => user.Followers)
     .WithMany()
     .Map(m =>m.MapLeftKey("user_id").MapRightKey("follower_id")
     .ToTable("user_follower"));
Run Code Online (Sandbox Code Playgroud)

用户关系映射

modelBuilder
     .Entity<UserRelation>()
     .ToTable("user_follower");

modelBuilder
     .Entity<UserRelation>()
     .HasOptional<User>(f => f.User)
     .WithRequired().Map(m => m.MapKey("user_id"));

modelBuilder
     .Entity<UserRelation>()
     .HasOptional<User>(f => f.Follower)
     .WithRequired().Map(m => m.MapKey("follower_id"));

modelBuilder
     .Entity<UserRelation>()
     .Property(entity => entity.CreatedOn)
     .HasColumnName("created_on");
Run Code Online (Sandbox Code Playgroud)

例外

指定的架构无效.错误:(67,6):错误0019:已定义具有架构'dbo'和表'user_follower'的EntitySet'UserUser'.每个EntitySet必须引用唯一的模式和表.

Edit2:以下是此模型的另一个示例:http://learnentityframework.com/LearnEntityFramework/tutorials/many-to-many-relationships-in-the-entity-data-model/

entity-framework ef-code-first entity-framework-4.1

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

如何在“Docker for Windows”中启用docker远程API

我的 Windows 10 计算机上安装了Docker Desktop for Windows 1.12.1-stable(内部版本:7135)。我想通过 port使用远程 API访问 docker 4243。我猜这个端口默认没有启用。您知道如何打开它吗?

docker docker-for-windows docker-desktop

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

所需状态配置中的凭据

我有以下所需的状态配置 (DSC)

Configuration Cert
{
    param (
        [Parameter(Mandatory=$true)] 
        [ValidateNotNullorEmpty()] 
        [System.String] $machineName,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullorEmpty()]
        [PSCredential]
        $certCredential
    )

    Import-DscResource -ModuleName xPSDesiredStateConfiguration, xCertificate

    Node $machineName 
    {
        xPfxImport cert
        {
            Ensure = 'Present'
            Path = 'C:\certificate.pfx'
            Thumbprint = 'abcdefg'
            Location = 'LocalMachine'
            Store = 'My'
            Exportable = $true
            Credential = $certCredential
        }
    } 
}  
$cd = @{
    AllNodes = @(
    @{
        NodeName = 'localhost'
        PSDscAllowPlainTextPassword = $true
    }
)
Run Code Online (Sandbox Code Playgroud)

}

$secpasswd = ConvertTo-SecureString 'password' -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ('x', $secpasswd) …
Run Code Online (Sandbox Code Playgroud)

powershell dsc

3
推荐指数
2
解决办法
2762
查看次数