小编viv*_*una的帖子

实体框架:没有主键的表

我有一个现有的数据库,我想用EF4.0构建一个新的应用程序

某些表没有定义主键,因此当我创建新的实体数据模型时,我收到以下消息:"表/视图TABLE_NAME没有定义主键,也没有推断出有效的主键.此表/视图已被排除.要使用该实体,您需要检查您的架构,添加正确的密钥,并取消注释".

如果我想使用它们并修改数据,我是否必须在这些表中添加PK,或者是否有解决方法以便我不必?

.net entity-framework

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

EF Core Mapping EntityTypeConfiguration

在EF6中,我们通常能够使用这种方式配置实体.

public class AccountMap : EntityTypeConfiguration<Account>
{
    public AccountMap()
    {
        ToTable("Account");
        HasKey(a => a.Id);

        Property(a => a.Username).HasMaxLength(50);
        Property(a => a.Email).HasMaxLength(255);
        Property(a => a.Name).HasMaxLength(255);
    }
}
Run Code Online (Sandbox Code Playgroud)

我们如何在EF Core中做,因为当我继承EntityTypeConfiguration类时无法找到该类.

我从GitHub下载EF Core原始源代码,我找不到它.有人可以帮忙吗?

c# entity-framework-core

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

在第二级包含多个引用

假设我们有这个模型:

public class Tiers
{
    public List<Contact> Contacts { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class Contact
{
    public int Id { get; set; }
    public Tiers Tiers { get; set; }
    public Titre Titre { get; set; }
    public TypeContact TypeContact { get; set; }
    public Langue Langue { get; set; }
    public Fonction Fonction { get; set; }
    public Service Service { get; set; }
    public StatutMail StatutMail { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用EF7,我想从Tiers表中检索所有数据,包括Contact表中的数据,Titre表中的数据,TypeContact表中的数据等等......只需一条指令.使用Include/ThenInclude API,我可以编写如下内容:

_dbSet
     .Include(tiers => …
Run Code Online (Sandbox Code Playgroud)

entity-framework-core asp.net-core-mvc

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

是否存在实体框架7数据库优先POCO生成器?

我一直在玩Entity Framework 7和ASP.NET 5来处理我正在开发的新项目,但我遇到了障碍.我正在研究的团队使用DBA优先的方法进行开发; 即数据库由DBA设计,然后开发人员更改代码以补偿模型更改.

使用EF6,这很有效,因为我们可以使用EDMX设计器的"更新"功能更新代码.点击一下,我们就可以获得新课程了,我们已经完成了.但是,在EF7中,一切都不同.没有更多的设计师,我们应该使用Code-First,根据EF团队的一些博客文章,它也应该支持"数据库优先"代码生成.

但是,我无法弄清楚如何在ASP.NET 5应用程序中使用Visual Studio 2015 CTP6执行此操作.工具支持还没有,或者我运气不好?它甚至会出现吗?

c# sql-server entity-framework-core asp.net-core

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

错误:安装 Rancher Desktop 时 wsl.exe 退出,代码为 4294967295

在我的虚拟机中安装最新稳定的 Rancher Desktop 时,我收到以下错误。

有人可以帮忙吗?

错误:

错误:wsl.exe 退出,代码为 4294967295

命令:

wsl --distribution rancher-desktop --exec mkdir -p /mnt/wsl/rancher-desktop/run/data
Run Code Online (Sandbox Code Playgroud)

日志:

2022-02-02T09:58:39.490Z: Running command wsl --distribution rancher-desktop --exec wslpath -a -u C:\Users\VIVEK~1.NUN\AppData\Local\Temp\rd-distro-gGd3SG\distro.tar...
2022-02-02T09:58:40.641Z: Running command wsl --distribution rancher-desktop --exec tar -cf /mnt/c/Users/VIVEK~1.NUN/AppData/Local/Temp/rd-distro-gGd3SG/distro.tar -C / /bin/busybox /bin/mount /bin/sh /lib /etc/wsl.conf /etc/passwd /etc/rancher /var/lib...
2022-02-02T09:58:42.628Z: Running command wsl --import rancher-desktop-data C:\Users\Vivek.Nuna\AppData\Local\rancher-desktop\distro-data C:\Users\VIVEK~1.NUN\AppData\Local\Temp\rd-distro-gGd3SG\distro.tar --version 2...
2022-02-02T09:58:44.025Z: Running command wsl --distribution rancher-desktop-data --exec /bin/busybox [ ! -d /etc/rancher ]...
2022-02-02T09:58:44.025Z: Running command wsl --distribution rancher-desktop-data --exec /bin/busybox …
Run Code Online (Sandbox Code Playgroud)

virtual-machine kubernetes rancher windows-subsystem-for-linux

24
推荐指数
3
解决办法
3万
查看次数

ExtractMethodCodeRefactoringProvider的原因遇到错误并已被禁用?

当我尝试通过右键单击所选代码(快速操作和重构)或从代码中提取方法时,我收到此错误Ctrl + ..

我正在使用Visual Studio 2015.我能够在不同的解决方案中重构其他项目.我的解决方案有多个项目,它不适用于此解决方案下的所有项目.

我尝试使用Visual Studio 2010做同样的事情,这在解决方案中运行良好.

它仅在Visual Studio 2015中显示此错误.

这是Visual Studio 2015中的一个错误吗?或者我需要在Visual Studio或代码,解决方案或项目中进行一些设置?我在Studio 2015之前从未见过这个错误.

错误

仅供参考:这不是编译错误,它只是一个警告,它并没有阻止我运行应用程序或调试.

c# visual-studio visual-studio-2015

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

如何从 Visual Studio 2022 运行 WcfTestClient?

我已经安装了 VS 2022,我需要使用 WcfTestClient 来测试我的服务。但我找不到它。

它曾经在 VS 2019 中位于以下位置。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE

.net c# wcf visual-studio visual-studio-2022

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

如何在Wndproc中专门在C#Winform中获取IME布局?

我有一个winform应用程序,我想在C#中获取当前输入语言的信息.我有windows 10机器,我选择了韩语.在选择韩语后,任务栏中有一个切换按钮可将输入语言更改为英语或韩语.

以下代码总是提供韩语,但是当我选择英语输入时它应该提供英语.

    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow();
    [DllImport("user32.dll")]
    static extern uint GetWindowThreadProcessId(IntPtr hwnd, IntPtr proccess);
    [DllImport("user32.dll")]
    static extern IntPtr GetKeyboardLayout(uint thread);
    public Form1()
    {
        InitializeComponent();
        IntPtr foregroundWindow = GetForegroundWindow();
        uint foregroundProcess = GetWindowThreadProcessId(foregroundWindow, IntPtr.Zero);
        int keyboardLayout = GetKeyboardLayout(foregroundProcess).ToInt32() & 0xFFFF;
        CultureInfo info = new CultureInfo(keyboardLayout);
        int keyboardLayoutId = info.KeyboardLayoutId;
        string name = info.Name;
    }
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来获取输入语言信息.

您可以找到相同的附加图像.我强调A作为英语输入. TaskBar屏幕截图英文输入

TaskBar截图韩文输入

我想在WndProc方法中提供这些信息.

问题总结:所以我想处理当用户切换语言通过切换按钮键入时的情况,当用户通过切换按钮切换语言时,我希望任何wndproc消息或窗口边事件获取语言信息.

c# ime winforms

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

如何基于sql server中的where条件获取表中所有列的值的不同计数?

我有一个包含100列的记录的表,我需要根据某种条件(where子句)从该表中获取所有列的不同值的计数。

下面的查询工作正常,但我无法使用where子句。因此,它给出了表中所有记录的结果。但是我希望它基于某种条件,比如说列file_id = 1;。我的问题是如何在以下查询中使用where子句。或者是否还有其他替代方法可以解决此问题。

declare @SQL nvarchar(max)
set @SQL = ''
;with cols as (
select Table_Schema, Table_Name, Column_Name, Row_Number() over(partition by Table_Schema, Table_Name
order by ORDINAL_POSITION) as RowNum
from INFORMATION_SCHEMA.COLUMNS
)

select @SQL = @SQL + case when RowNum = 1 then '' else ' union all ' end
+ ' select ''' + Column_Name + ''' as Column_Name, count(distinct ' + quotename (Column_Name) + ' ) As DistinctCountValue, 
count( '+ quotename (Column_Name) + ') as CountValue FROM ' …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

如何在Winform中获取韩文输入?

我想在winform应用程序中的ediatble区域中键入韩语文本.

但是人物正在重复,我试图覆盖默认值WndProc,但没有任何效果.

switch (m.WParam.ToInt32())
                {
case Common.Interop.Window.WM_IME_CHAR:
                break;

            case Common.Interop.Window.WM_IME_ENDCOMPOSITION:
                    PassCharToScreen(m);
                break;

            case Common.Interop.Window.WM_CHAR:
                    PassCharToScreen(m);
                break;

            case Common.Interop.Window.WM_IME_NOTIFY:
                break;
            case Common.Interop.Window.WM_IME_COMPOSITION:
                PassCharToScreen(m);
                break;
            case Common.Interop.Window.WM_IME_COMPOSITIONFULL:
                break;
Run Code Online (Sandbox Code Playgroud)

当我输入英文时,断点命中WM_CHAR,但是当我输入韩文时,它会击中WM_IME_COMPOSITION第一个字符,然后在第一个字符后首先命中WM_IME_COMPOSITION然后点击WM_CHAR.

我观察到它键入了第一个字符正确.例如ㅁ(韩文字符)输入第二个字符.ㅁㅂㅁ(First char,second char,first char).我想要记事本中的行为

c# ime winforms

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