我想用分页进行数据库查询.所以,我使用了一个通用表表达式和一个排名函数来实现这一点.看下面的例子.
declare @table table (name varchar(30));
insert into @table values ('Jeanna Hackman');
insert into @table values ('Han Fackler');
insert into @table values ('Tiera Wetherbee');
insert into @table values ('Hilario Mccray');
insert into @table values ('Mariela Edinger');
insert into @table values ('Darla Tremble');
insert into @table values ('Mammie Cicero');
insert into @table values ('Raisa Harbour');
insert into @table values ('Nicholas Blass');
insert into @table values ('Heather Hayashi');
declare @pagenumber int = 2;
declare @pagesize int = 3;
declare @total int;
with …Run Code Online (Sandbox Code Playgroud) 我想知道下面的代码是否显示了一个不好的做法(关于接口继承):
public interface IFoo : IDisposable
{
void Test();
}
public class TestImpl : IFoo
{
public void Test()
{
// do something
}
public void Dispose()
{
// disposing my dependencies
}
}
public class FooFactory
{
public IFoo CreateFoo()
{
return new TestImpl();
}
}
public class Client
{
public void Main()
{
FooFactory factory = new FooFactory();
using(IFoo foo = factory.CreateFoo())
{
// do stuff then auto-dispose
foo.Test();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我想要两件事:1.使用C#的using语句,这样我就可以优雅地处理我的具体对象的依赖(不需要向IDisposable投射任何东西).2.使用工厂方法创建具体对象,因此我只能使用接口.
分开,两者都是已知的良好做法,但在一起?我没有发现任何说这是错的http://msdn.microsoft.com/en-us/library/ms229022.aspx(MSDN-界面设计),但我认为这听起来不错......
我将不胜感激任何评论.如果这是一个不好的做法,我会遇到什么样的问题?
谢谢!
我想知道TransactionScope类如何工作以保持不同方法调用之间的事务(不需要将其作为参数传递),我开始怀疑.我对这个问题有两点考虑:
通过Telerik JustDecompile查看TransactionScope的实现,我发现当前事务存储在System.Transactions.ContextData类的ThreadStatic成员中(下面的代码).
internal class ContextData
{
internal TransactionScope CurrentScope;
internal Transaction CurrentTransaction;
internal DefaultComContextState DefaultComContextState;
[ThreadStatic]
private static ContextData staticData;
internal WeakReference WeakDefaultComContext;
internal static ContextData CurrentData
{
get
{
ContextData contextDatum = ContextData.staticData;
if (contextDatum == null)
{
contextDatum = new ContextData();
ContextData.staticData = contextDatum;
}
return contextDatum;
}
}
public ContextData()
{
}
}
Run Code Online (Sandbox Code Playgroud)
CurrentData属性由TransactionScope的PushScope()方法调用,最后一个属性由大多数TransactionScope构造函数使用.
private void PushScope()
{
if (!this.interopModeSpecified)
{
this.interopOption = Transaction.InteropMode(this.savedCurrentScope);
}
this.SetCurrent(this.expectedCurrent);
this.threadContextData.CurrentScope = this;
}
public TransactionScope(TransactionScopeOption scopeOption)
{
// …Run Code Online (Sandbox Code Playgroud) 我是EF4的新手,我正在试图找出创建我的DbContext类的最佳方法.
将所有表/实体放入一个且只有一个DbContext类中是否存在任何问题(特别是性能),如下面的代码?
public class AllInOneDb : DbContext
{
public DbSet<Customer> Customers{ get; set; }
public DbSet<Address> Addresses{ get; set; }
public DbSet<Order> Order{ get; set; }
public DbSet<Product> Products{ get; set; }
public DbSet<Category> Categories{ get; set; }
// and more and more entities...
}
Run Code Online (Sandbox Code Playgroud)
或者我应该根据功能的子集对我的类进行建模?
public class CustomerDb : DbContext
{
public DbSet<Customer> Customers{ get; set; }
public DbSet<Address> Addresses{ get; set; }
public DbSet<Order> Order{ get; set; }
}
public class ProductDb : DbContext
{
public DbSet<Product> Products{ …Run Code Online (Sandbox Code Playgroud) 我需要生成一个如下所示的 XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<inboundMessage xmlns="http://www.myurl.net">
<header>
<password>mypwd</password>
<subscriberId>myuser</subscriberId>
</header>
<message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="myType">
<eventDate>2012-09-05T12:13:45.561-05:00</eventDate>
<externalEventId />
<externalId>SomeIdC</externalId>
</message>
</inboundMessage>
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何在标记中包含 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="myType" 。我需要序列化的类是这样的:
[XmlType("inboundMessage")]
[XmlRoot(Namespace = "http://www.myurl.net")]
public class InboundMessage
{
[XmlElement(ElementName = "header")]
public Header _header;
[XmlElement(ElementName = "message")]
public List<MyType> _messages;
}
Run Code Online (Sandbox Code Playgroud)
我需要将哪些 XmlAttributes 添加到“_messages”成员中才能使其按照我想要的方式序列化?
蒂亚,埃德
鉴于以下代码
public class Entity
{
public string Name { get; set; }
public string Status { get; set; }
}
public interface IRepository
{
void InsertEntity(Entity entity);
void UpdateEntity(Entity entity);
}
public class Processor
{
private IRepository _repository;
public Processor(IRepository repository)
{
_repository = repository;
}
public void Execute(string name)
{
var entity = new Entity() { Name = name, Status = "Initialized" };
_repository.InsertEntity(entity);
// do other things with the entity
entity.Status = "Processed";
_repository.UpdateEntity(entity);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以编写一个单元测试来验证是否在 Execute …
我需要使用Javascript和Knockout.js编辑Web应用程序中的整数数组.此数组将绑定到文本框,并且每当更改任何文本框的值时,都会更新该数组.当它更新时,计算元素的总和.
这是我的第一次尝试:http://jsfiddle.net/ZLs2A/0/.它不起作用(在为任何元素键入新值时,sum值不会更新).那时我意识到observableArray只会在插入或删除项目后触发sum函数.
<h4>Numbers</h4>
<button data-bind="click: add">Add</button>
<ul data-bind="foreach: numbers">
<li>
<input data-bind="value: $data"></input>
</li>
</ul>
<span data-bind="text: sum"></span>
function MyViewModel() {
var self = this;
self.numbers = ko.observableArray([
1,
2,
3
]);
self.sum = ko.computed(function() {
var items = self.numbers();
var total = 0;
for (var i = 0; i < items.length; i++) {
total += parseInt(items[i]);
}
return total;
});
self.add = function() {
var lastIndex = self.numbers().length - 1;
var lastValue = self.numbers()[lastIndex];
self.numbers.push(lastValue …Run Code Online (Sandbox Code Playgroud) 在微服务架构中,我们通常有两种微服务通信的方式。假设服务 A 需要从服务 B 获取信息。第一个选项是远程调用,通常通过 HTTPS 同步,因此服务 A 查询服务 B 托管的 API。
第二种选择是采用事件驱动架构,其中服务 B 的状态可以以异步方式由服务 A 发布和消费。使用此模型,服务 A 可以使用来自服务 B 的事件的信息更新其自己的数据库,并且所有查询都在此数据库中本地进行。这种方法的优点是可以更好地分离微服务,从开发到运营。但它有一些与数据复制相关的缺点。
第一个是磁盘空间的高消耗,因为相同的数据可以驻留在需要它的微服务的数据库中。但在我看来,第二个最糟糕:如果服务 B 不能按需要快速处理其订阅,或者在服务 B 上创建它的同时它不能用于服务 A,则数据可能会变得陈旧,因为模型的最终一致性。
假设我们使用 Kafka 作为事件中心,其主题配置为使用 7 天的数据保留期。当服务 B 发布其状态时,服务 A 保持同步。两周后,新服务 C 部署完毕,其数据库需要使用服务 B 拥有的所有信息进行充实。由于最旧的事件已经消失,我们只能从 Kafka 主题中获取部分信息。我的问题是我们可以使用哪些模式来实现此微服务的数据库丰富(除了要求服务 B 将其所有当前状态重新发布到事件中心)。
event-driven eventual-consistency database-replication apache-kafka microservices
我有一个ASP.NET应用程序可以在Visual Studio开发服务器启动时连接到Oracle,但是当我将它部署到我的本地IIS时,它没有连接,显示"ORA-12154:TNS:无法解析连接标识符指定"错误.
我的连接字符串是:
Data Source=ABC; User Id=USER; Password=PASSWORD;
Run Code Online (Sandbox Code Playgroud)
Tt正在使用TNS.我的tnsnames.ora位于C:\ oracle\instantclient_10_2 \network\admin,我的ORACLE_HOME系统变量指向C:\ oracle\instantclient_10_2.
为了使它工作,我将连接字符串更改为:
"SERVER=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = server1.theplaceiwork.com)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = server2.theplaceiwork.com)(PORT = 1521))(LOAD_BALANCE = yes))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ABC)(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC))));uid=USER;pwd=PASSWORD;"
Run Code Online (Sandbox Code Playgroud)
所以不再使用TNS.
但是我想知道为什么我可以在使用Visual Studio进行debbu时使用TNS进行连接,但是在使用IIS时我不能.
有小费吗?
PS.我可以使用SqlDeveloper和TNS显示没有连接错误.
谢谢
例如:
for (i=0;i<10;i++)
{
myclass = new myclass();
// do stuff with myclass
}
Run Code Online (Sandbox Code Playgroud)
问题:
c# ×3
asp.net ×2
.net ×1
apache-kafka ×1
attributes ×1
dbcontext ×1
event-driven ×1
iis ×1
inheritance ×1
knockout.js ×1
moq ×1
new-operator ×1
oop ×1
oracle ×1
pagination ×1
sql-server ×1
threadstatic ×1
tns ×1
unit-testing ×1