小编Wee*_*eej的帖子

实体框架作为存储库和UnitOfWork?

我正在开始一个新项目,并决定尝试合并DDD模式,还包括Linq to Entities.当我查看EF的ObjectContext时,它似乎正在执行Repository和Unit of Work模式的功能:

存储库的意思是底层数据级接口是从实体表示中抽象出来的,我可以通过ObjectContext请求和保存数据.

工作单元在某种意义上说,我可以写入对objectContext的所有插入/更新,并在执行SaveChanges()时一次性执行它们.

将这些模式的另一层放在EF ObjectContext之上似乎是多余的?似乎Model类可以使用'partial class'直接合并到EF生成的实体之上.

我是DDD的新手,所以如果我在这里遗漏了什么,请告诉我.

domain-driven-design entity-framework

18
推荐指数
2
解决办法
6016
查看次数

StackExchange.Redis server.Keys(pattern:"IsVerySlow*")

我是redis的新手,所以我做错了,我敢肯定:

我在Azure Redis中存储了大约16,000个键/值.

我使用以下代码来写入键/值

      foreach (var worksheet in wksList)
      {
        var wksYYMM = string.Format("{0}{1:00}", worksheet.ReviewDt.Year, worksheet.ReviewDt.Month);
        var wksKey = string.Format("{0}:{1}:{2}", provCode, wksYYMM, worksheet.AcctNbr);
        string jsonStr = JsonConvert.SerializeObject( MakeWsListDto(worksheet, provCoderList, rvrList));
        cache.StringSet(wksKey, jsonStr);
      }
Run Code Online (Sandbox Code Playgroud)

所以我的键看起来像这样:"AP:201401:AZ5798BK"

当我尝试查找时:

    var keys = server.Keys(pattern: "AP:201401:*"); // returns in milliseconds
    var keyAry = keys.ToArray(); // returns in over one minute
    (note: this returns 12 keys)
Run Code Online (Sandbox Code Playgroud)

返回键需要1分12秒.一旦我有了密钥,它需要几毫秒来检索那些值.如果我迭代键的值并返回值,我得到类似的结果.我做了ToArray()只是为了隔离问题.

如果我在redis-cli.exe中尝试相同的查询,它会在几毫秒内回来.

我错误地使用此命令了吗?

stackexchange.redis azure-redis-cache

15
推荐指数
2
解决办法
9515
查看次数

WCF与实体框架的合同?

我已经在这个问题上提出了许多死路一条.据推测,.NET 3.5 SP1在WCF合同中支持ADO.NET实体框架实体.但是,当我寻找有关它的可靠信息时,我没有得到很多答案.我在MSDN线程上找到了这个片段.有人对这个有经验么?[DataContract]发生了什么?这就是全部吗?为什么这么少的材料呢?

这是Tim Mallalieu在微软的回答.

默认情况下,实体框架中生成的实体类型是数据合同.如果我要在实体设计器中创建一个简单模型,如下所示:购物车实体类型默认为DataContract,其所有属性都注释为数据成员.然后我们可以在WCF服务中使用它,如下所示:

[ServiceContract]

public interface IService1

{
    [OperationContract]
    Cart[] AllCarts();
}



public class Service1 : IService1

{
    public Cart[] AllCarts() 

    {
        using (MSPetShop4Entities context = new MSPetShop4Entities())

        {
            var carts = from c in context.Carts select c;
            return carts.ToArray();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

由于实体是DataContracts,您现在可以根据需要推送您的服务并通过网络发送这些服务.

wcf entity-framework

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

奥斯陆的Intellipad:如何设置3列MGrammarMode?

我一直在使用奥斯陆作为MSchema.效果很好.我可以为数据库设计编写一个M Schema,并生成T-SQL以使用PK,FK构建整个数据库,检查完整性等.我已经设置了一个.bat文件来将.m编译成.mx然后加载它进入数据库,然后运行SqlMetal进入我的项目,并在30秒内继续我的更改.我喜欢它.

好的,现在我正在进入mGrammar.我不太确定如何将它合并到我的应用程序中,但我会弄明白的.我首先需要设置Intellipad给我输入/语法/输出三联画.我很难过.我无法想出用流程设置它的任何方法.是的,我可以接受song.mg项目并将其重命名,但这并没有让我对这个东西如何运作有任何见解.有任何想法吗?

oslo m mgrammar intellipad

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