小编Blu*_*eft的帖子

实体框架 - 映射十进制(13,0)问题

我正在将我公司的应用程序(现在运行在SQL Server和Oracle上)迁移到ASP NET MVC和实体框架以实现持久性.

分别创建基于SQL Server数据库e的实体模型我为Oracle创建了一个SSDL(对于Oracle我使用DevArt dotConnect for Oracle Provider),我遇到了一些痛苦的麻烦.

我的表主键在SQL Server上是十进制类型(13,0),在Oracle上是数字(13,0)但是Oracle将它的类型映射到Int64和SQL Server到十进制,但我需要SQL Server将它映射到Int64 .

我在实体数据模型上手动进行这些修改,并且对于创建记录,它工作正常,但是当我必须删除或更新某些记录时,我收到了以下错误:

指定的值不是'Edm.Decimal'类型的实例参数名称:value

在System.Data.Common.CommandTrees.DbConstantExpression..ctor(DbCommandTree commandTree,Object value,TypeUsage constantType)
处于System的System.Data.Mapping.Update.Internal.UpdateCompiler.GenerateValueExpression(DbCommandTree commandTree,EdmProperty属性,PropagatorResult值)
.
System.Data.Mapping.Update.Internal.UpdateCompiler.BuildPredicate(DbModificationCommandTree commandTree,PropagatorResult referenceRow,PropagatorResult current,TableChangeProcessor processor,Boolean&rowMustBeTouched )中的Data.Mapping.Update.Internal.UpdateCompiler.GenerateEqualityExpression(DbModificationCommandTree commandTree,EdmProperty属性,PropagatorResult值)) System.Data.Mapping.Update.Update.Update.Update.Update.Internal.TableChangeProcessor.CompileCommands(ChangeNode changeNode,UpdateCompiler编译器)
中的System.Data.Mapping.Update.Internal.UpdateCompiler.BuildDeleteCommand(PropagatorResult oldRow,TableChangeProcessor处理器
)

有人可以帮帮我吗?

为什么实体框架映射如此固定?它可以更灵活吗?

Ps.:我得到的错误,我怀疑是因为一个关联.

我有一个名为省的实体和另一个名为Country的实体,我认为这些实体之间的关联在更新和删除时导致了问题.

问候,

Douglas Aguiar

mapping entity-framework

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

多线程...函数式语言?(序言)

当我的朋友开始在学校学习Prolog时,我取笑他学习一种无用的语言.然而,他向我展示了一些我从未知道的东西; 我想知道这种技术的来源.

技术是这样的:

permutation(List) :-
    isAMember(X, List),
    deleteFirstElement(X, List, Substring),
    % and so on
Run Code Online (Sandbox Code Playgroud)

在这段代码中,isAMember(X, List)是一个函数,如果X在,则返回true List.然而,到现在为止X没有被定义为一个变量- 这样的计划将产生一堆新的线程,每一个可能的值X,使isAMember(X, List)真实的,并从那里继续.

这使我们能够以我能想象到的最简单,最优雅的方式创建多线程算法.

所以我的问题是: 这是Prolog特定的,还是所有逻辑和/或功能语言的特征? 另外,我在哪里可以学到更多这样令人惊叹的多线程技术 - 这无疑是编程的未来.

multithreading functional-programming prolog logic-programming

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

使用LINQ到实体的OrderBy和Distinct

这是我的LINQ查询:

(from o in entities.MyTable
orderby o.MyColumn
select o.MyColumn).Distinct();
Run Code Online (Sandbox Code Playgroud)

结果如下:

{"a", "c", "b", "d"}
Run Code Online (Sandbox Code Playgroud)

这是生成的SQL:

SELECT 
[Distinct1].[MyColumn] AS [MyColumn]
FROM ( SELECT DISTINCT 
    [Extent1].[MyColumn] AS [MyColumn]
    FROM [dbo].[MyTable] AS [Extent1]
)  AS [Distinct1]
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?我的订单在哪里,该死的?

sql linq linq-to-entities sql-server-2008

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

返回匿名类型的简单方法(使用LINQ实现MVC)

我想在使用LINQ(特别是LINQ到实体)时实现MVC.我这样做的方法是让Controller使用LINQ生成(或调用生成的)结果集,然后将其返回到View以显示数据.问题是,如果我这样做:

return (from o in myTable select o);
Run Code Online (Sandbox Code Playgroud)

所有列都从数据库中读取,即使是我不想要的列(可能是几十列).而且 - 更重要的是 - 我做不到这样的事情:

return (from o in myTable select new { o.column });
Run Code Online (Sandbox Code Playgroud)

因为没有办法让匿名类型安全!我知道确实没有好的,干净的方式在3.5中这样做(不干净......),但4.0怎么样?有什么计划,甚至提议? 如果没有像duck-typing-for-LINQ那样的东西,或类型安全的匿名返回值(在我看来,编译器当然应该能够做到这一点),似乎几乎不可能将Controller与View完全分开.

c# linq asp.net-mvc linq-to-entities linq-to-sql

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

c ++ STL向量不接受复制构造函数

我写了一个代码(c ++,visual studio 2010),它有一个向量,即使我虽然声明了复制const,但仍然显示未声明复制const

这里的代码

#include<iostream>
#include<vector>

using namespace std;

class A
{
public:
    A() { cout << "Default A is acting" << endl ; }
    A(A &a) { cout << "Copy Constructor of A is acting" << endl ; }
};

int main()
{
    A a;
    A b=a;
    vector<A> nothing;
    nothing.push_back(a);

    int n;
    cin >> n;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

错误1错误C2558:类'A':没有可用的复制构造函数或复制构造函数被声明为'显式'c:\ program files\microsoft visual studio 10.0\vc\include\xmemory 48 1删除

有人请帮帮我

c++ stl copy-constructor

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

如何将Unity支持添加到NuGet包中?

如何将程序包发布到支持Unity(游戏引擎)的NuGet?

另外,我是否需要安装Unity来编译它,或者是否足够针对特定的框架版本?

c# unity-game-engine nuget

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

XNA - Pong Clone - 击中墙壁时反射球?

创建 2D Pong Clone 时,我试图让球从 UI 的顶部和底部“墙”反弹。这是我的 Game.cs

public void CheckBallPosition()
{
    if (ball.Position.Y == 0 || ball.Position.Y >= graphics.PreferredBackBufferHeight)
        ball.Move(true);
    else
        ball.Move(false);

    if (ball.Position.X < 0 || ball.Position.X >= graphics.PreferredBackBufferWidth)
        ball.Reset();
}
Run Code Online (Sandbox Code Playgroud)

目前我在 Ball.cs 中使用它

    public void Move(bool IsCollidingWithWall)
    {
        if (IsCollidingWithWall)
        {
            Vector2 normal = new Vector2(0, 1);
            Direction = Vector2.Reflect(Direction,normal);
            this.Position += Direction;
            Console.WriteLine("WALL COLLISION");
        }
        else
            this.Position += Direction;
    }
Run Code Online (Sandbox Code Playgroud)

它有效,但我使用的是手动输入的法线,我想知道如何计算屏幕顶部和底部的法线?

c# math xna collision-detection

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

C++/CLI将CString的内容打印到控制台

这里的C++新手有一个简单的问题.如何将CString的内容打印到控制台?

这样做

int main(array<System::String ^> ^args)
{               
    CString cs1 = _T("Hy");
    CString cs2 = _T(" u");
    CString cs3 = cs1 + cs2;

    Console::WriteLine(cs3);    
    printf("%s", cs3);  
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在控制台上输出"True"和"H".TIA.

c++-cli cstring

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

是否可以在控制台应用程序的“主”线程上运行异步回调?

在 GUI 应用程序中,有很多方法可以运行异步代码并在“主”线程上运行结果:

  • 使用async/await
  • 用一个 BackgroundWorker
  • someControl.Invoke()
  • .ContinueWith(..., TaskScheduler.FromCurrentSynchronizationContext())

等等等等

但是,这些选项都不适用于控制台应用程序,因为没有同步上下文或 GUI 运行循环。

我正在修改一个控制台项目,它有自己的手动运行循环。像这样的东西:

while (!cancelled)
{
    if(api.HasMessage())
    {
        api.HandleMessage();
    }
    Thread.Sleep(1);
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在这个项目中进行异步 web 请求,同时仍然在主运行循环线程上处理结果以避免典型的多线程问题。当然,我可以使用队列手动执行此操作,但是能够使用async/await或其他可以更好地处理此问题的范例之一会很好。

有没有我可以从运行循环调用的方法来实现这一点?我在想象这样的事情,比如说,Thread.ResolveCurrentAwaitingTasks()

c# multithreading console-application task-parallel-library async-await

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

为什么空条件运算符会更改常规属性访问?

我很困惑null条件运算符如何与普通属性访问级联.拿这两个例子:

a?.b.c
(a?.b).c
Run Code Online (Sandbox Code Playgroud)

我希望它们是等价的:首先,a?.b评估值,然后result.c进行评估.因此,如果a == null应该抛出异常.

但是,这只发生在第二个表达式中.第一个表达式求值为null,意思是它相同a?.b?.c.为什么?

c# null-conditional-operator safe-navigation-operator

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