嘿那里,我试图在没有运气的情况下禁用我的收藏品上的LazyLoad ...到目前为止我尝试过的代码是:
// Person.cs
public class Person
{
public virtual int Id { get; private set; }
public virtual string FirstName { get; set; }
public virtual IList<Car> Cars { get; set; }
public Person()
{
Cars = new List<Car>();
}
public virtual void AddCar(Car car)
{
Cars.Add(car);
}
}
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Id(x => x.Id);
Map(x => x.FirstName);
HasMany(x => x.Cars).KeyColumn("PersonId").Cascade.AllDeleteOrphan().Not.LazyLoad();
Table("Persons");
}
}
Run Code Online (Sandbox Code Playgroud)
// Car.cs
public class Car
{
public virtual int …Run Code Online (Sandbox Code Playgroud) 当我遇到以下问题时,我正在尝试理解WCF的基本知识:
为什么使用basicHttpBinding过netTcpBinding的网络服务?
它们都可以有一个mex端点,允许您通过" 添加服务器参考"窗口轻松添加它们,而不需要任何配置?
我知道HTTP协议是建立在协议之上的TCP,但对我而言,它看起来就像HTTP提供了许多不必要的样板(性能等)
任何人都可以澄清为什么你会选择一个而不是另一个网络服务?
void main()
{
int x = 5; // stack-allocated
Console.WriteLine(x);
}
Run Code Online (Sandbox Code Playgroud)
我知道这x是堆栈分配的.但是实际存储在堆栈中的是x什么?它是否具有"实际值",或者包含值的内存中的某个地址?
我想用单个生产者和多个消费者的模式实现多文件下载.
我有: - 找到要在循环中下载的新链接的代码 - 当找到新链接时 - 它调用下载功能 - 下载功能接受源文件路径和目标文件路径并下载文件.
我想做什么 - 我想同时下载X个文件(我不知道文件的总数) - 在任何时候我都应该能够同时下载X文件 - 只要1个X文件完成下载 - 调用函数应该能够立即添加新的下载 - 然后立即下载
举例非常感谢
我有一个与其他类具有不同Add方法的类,因此不能实现相同的接口...我应该拆分当前接口以便它也可以使用它,还是应该为其创建另一个接口?
更新:
public interface IProductRepository<T, T2>
where T : class
where T2 : class
{
void Add(T model, int categoryId);
void Edit(T model, int id);
void Delete(int id);
T2 Get(int id);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,上面的接口具有一个需要categoryId的Add方法。
我的Category类与上面相同,但是Add方法中没有categoryId参数。我应该为Category类创建一个新接口吗?
更新 - 由于我方缺乏解释,我改写了帖子.
您如何看待使用代码约定在无效输入上抛出异常?(我正在编写我的服务合同,要求UserName不为null或包含空格)
MembershipServiceContracts.cs - 位于子文件夹的服务层中
[ContractClassFor(typeof (IMemberShipService))]
internal abstract class MemberShipServiceContracts : IMemberShipService
{
#region IMemberShipService Members
public MembershipCreateStatus CreateUser(string userName, string password, string email)
{
Contract.Requires(!String.IsNullOrWhiteSpace(userName), "Test");
Contract.Requires(!String.IsNullOrWhiteSpace(password));
Contract.Requires(!String.IsNullOrWhiteSpace(email));
return default(MembershipCreateStatus);
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
MembershipService.cs - 位于我的服务层
[ContractClass(typeof (MemberShipServiceContracts))]
public interface IMemberShipService
{
MembershipCreateStatus CreateUser(string userName, string password, string email);
}
public class MemberShipService : IMemberShipService
{
private readonly MembershipProvider _provider;
public MemberShipService()
: this(null)
{ }
public MemberShipService(MembershipProvider provider)
{
_provider = provider ?? Membership.Provider;
} …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个由6层组成的网络应用程序:
我正在尝试实现一个"UnitOfWork"模式,因此我有一个由DI为该作业注入的类,这使得在我完成时可以在控制器的actionresult中执行.commit()数据库.
现在是我的问题......这个UnitOfWork课程应该放在哪里?它现在在我的数据层中,但是需要Controller层引用数据层和服务层,这在我看来很奇怪......我应该将UnitOfWork类/接口移动到服务层并使用DI吗?
asp.net asp.net-mvc separation-of-concerns unitofworkapplication
我正在尝试制作一个非常简单的应用程序,它会根据一天中的时间来迎接.我的代码是:
open System
let read() = Console.Read()
let readLine() = Console.ReadLine()
let clockMsg min max todo =
if (DateTime.Now.Hour > min) && (DateTime.Now.Hour < max) then todo
let name = readLine()
clockMsg 0 8 <| printfn "Go to bed, %s!" name
clockMsg 8 12 <| printfn "Good morning, %s!" name
clockMsg 12 18 <| printfn "Good afternoon, %s!" name
read() |> ignore
Run Code Online (Sandbox Code Playgroud)
现在是我的问题,如何只有一个函数调用有效,但三个都无论如何,打印他们的消息?
我怎么能这样做:
let printTeams x : unit =
let rnd = new Random()
Seq.toList x |> List.sortBy (fun x -> rnd.Next()) |> printTeams'
Run Code Online (Sandbox Code Playgroud)
但不是:
let printTeams x : unit =
let rnd = new Random()
printTeamsRec' <| Seq.toList x <| List.sortBy(fun x -> rnd.Next())
Run Code Online (Sandbox Code Playgroud)
我刚刚在最后一个上面收到错误,其中说:
类型不匹配.期待一个字符串列表 - >'a - >'b但给出一个
字符串列表 - > unit类型'' - >'b'与类型'unit'不匹配
错误发生在第三行 printTeamsRec'
任何帮助将是欣赏.
为什么这Solution 2比效率更高Solution 1?
(时间是100次运行的平均值,他们经历的总文件夹数是13217)
// Solution 1 (2608,9ms)
let rec folderCollector path =
async { let! dirs = Directory.AsyncGetDirectories path
do! [for z in dirs -> folderCollector z]
|> Async.Parallel |> Async.Ignore }
// Solution 2 (2510,9ms)
let rec folderCollector path =
let dirs = Directory.GetDirectories path
for z in dirs do folderCollector z
Run Code Online (Sandbox Code Playgroud)
我本以为Solution 1会更快,因为它是异步的,我在并行运行它.我错过了什么?
c# ×5
f# ×3
asp.net ×1
asp.net-mvc ×1
exception ×1
http ×1
interface ×1
lazy-loading ×1
nhibernate ×1
queue ×1
stack ×1
tcp ×1
wcf ×1
web-services ×1