当您有一个需要显示为接口控件的域对象时,如下拉列表,ifwdev建议创建一个扩展方法来添加.ToSelectList().
原始对象是具有与下拉列表的.Text和.Value属性相同的属性的对象列表.基本上,它是SelectList对象的List,而不是同一个类名.
我想你可以使用反射将域对象转换为接口对象.任何人对C#代码都有任何建议吗?SelectList是SelectListItem的MVC下拉列表.
当然,想法是在视图中做这样的事情:
<%= Html.DropDownList("City",
(IEnumerable<SelectListItem>) ViewData["Cities"].ToSelectList() )
Run Code Online (Sandbox Code Playgroud) 每个人都会偶尔计划一下:
var c = dc.Products.Select( p => new {p.id, p.name});
// results in c having properties of .id and .name
Run Code Online (Sandbox Code Playgroud)
如果我想将其重构为方法怎么办?我将如何传递 Select 参数?
var c = myFunction( p => new {p.id, p.name});
Product myFunction( ??? myLambda)
{
var c = dc.Products.Select( myLambda);
var result = new Product();
foreach( var myproperty in //property in myLambda)
{
result.XX // property that matches, set it equal to myproperty
}
}
Run Code Online (Sandbox Code Playgroud)
显然,我需要更多地思考反思。:)
任何人都知道命令行实用程序(或可以作为命令行运行的实用程序)将目录树中的所有.jpg文件收集到单个文件夹,只复制更改的文件?
我开始使用Renamer,它非常适合在当前目录中重命名文件,但是当我试图破坏路径时,它就缩短了.这可能是因为我不太了解Renamer.我最终创建了一个文本文件目录转储,然后使用REGEX查找/替换来创建批处理文件,但这几乎没有效率,也没有自动化.
REGEX:
(G:\ DIR\DIR \)([0-9] + \)([0-9] + \)([0-9] + \)([0-9] + \)(P [O- 9] +.JPG)
改变了这个
G:\ DIR\DIR\00\00\00\00\p0000000000.jpg
对此
G:\ DIR\DIR\p0000000000.jpg
(批处理文件中的副本\ 1\2\3\4\5\6\1\6).
我需要在没有真人登录的情况下将整个事情作为计划任务运行.不是真的在寻找Zip文件,因为我不想打扰系统处理器,而且大多数文件不会每天都在变化.这更像是文件同步.
是否有像Visual Studio这样的程序允许您调试(dos)批处理文件?我可以使用哪些技术进行调试?Martin Brown用一个很好的for/each循环回答了批处理文件的问题.我很乐意在循环时看到变量的值.
for /R A %i IN (*.jpg) DO xcopy %i B /M
我理解EAV中的三个基本故障,即重新组装数据需要做大量的工作.但是,我想要一个可以添加自定义字段的数据库.很多人说Virtuemart允许自定义字段但不使用EAV数据库结构.有人可以解释如何做到这一点或提供链接?
将过滤器对象传递给存储库是有意义的,因此它可以限制返回的记录:
var myFilterObject = myFilterFactory.GetBlank();
myFilterObject.AddFilter( new Filter { "transmission", "eq", "Automatic"} );
var myCars = myRepository.GetCars(myfilterObject);
Run Code Online (Sandbox Code Playgroud)
关键问题:你将如何实现分页? 有关如何从存储库返回LazyList的任何链接都将在此处应用?这会成为过滤器对象的一部分吗?就像是:
myFilterObject.AddFilter( new Filter { "StartAtRecord", "eq", "45"} );
myFilterObject.AddFilter( new Filter { "GetQuantity", "eq", "15"} );
var myCars = myRepository.GetCars(myfilterObject);
Run Code Online (Sandbox Code Playgroud)
我假设存储库必须实现过滤,否则您将获得所有记录.
假设您有一个Price对象接受(int数量,小数价格)或包含"4/$ 3.99"的字符串.有没有办法限制哪些属性可以设置在一起?请在下面的逻辑中随意纠正我.
测试:A和B彼此相等,但不允许使用C示例.因此,问题如何强制所有三个参数都不会像在C示例中那样被调用?
AdPrice A = new AdPrice { priceText = "4/$3.99"}; // Valid
AdPrice B = new AdPrice { qty = 4, price = 3.99m}; // Valid
AdPrice C = new AdPrice { qty = 4, priceText = "2/$1.99", price = 3.99m};// Not
Run Code Online (Sandbox Code Playgroud)
班级:
public class AdPrice {
private int _qty;
private decimal _price;
private string _priceText;
Run Code Online (Sandbox Code Playgroud)
构造函数:
public AdPrice () : this( qty: 0, price: 0.0m) {} // Default Constructor
public AdPrice (int qty = 0, decimal …Run Code Online (Sandbox Code Playgroud) 这可能看起来很复杂,但我真的只是想从他们的孩子中存在某些条件的A中选择所有记录和他们的孩子.寻找我可以添加到A变量的语法,它允许我过滤一堆条件(比如规范模式?)
如果您有这样的嵌套视图:
var a = from Arow in Atable
where ???
select new AViewModel { // (image Products)
id = Arow.id,
name = Arow.Name,
Brows = (from Brow in Arow.Brows
select new BViewModel { // (sold in different regions)
id = Brow.id,
name = Brow.Name,
Crows = (from Crow in Brow.Crows
select new CViewModel { // (and in many stores)
id = Crow.id,
name = Crow.Name
}
}
};
Run Code Online (Sandbox Code Playgroud)
和文本表示来自这样的网页的查询(规范模式?)我们使用JQuery选择器作为运算符(如^ =表示"以"开头")
filter[] = { "Brow.Name = Joe", "Crow.Name = Kim" …Run Code Online (Sandbox Code Playgroud) 如果您为Entity Framework 4中的实体执行通用存储库,则首先要查询实体:
public IEnumerable<E> GetEntity()
{
return _container.CreateQuery<E>( ... );
}
Run Code Online (Sandbox Code Playgroud)
在...上面我们需要EntitySetName,它通常是复数形式E的名称.然而,它并不总是像添加's'一样容易.例如,如果我们只添加一个's',这将有效.
return _container.CreateQuery<E>( "[" + typeof(E).Name + "s]");
Run Code Online (Sandbox Code Playgroud)
如果我们有一个真实的实体,这将包含我们的EntitySetName:
E.EntityKey.EntitySetName
Run Code Online (Sandbox Code Playgroud)
当只提供E类型时,如何获取EntitySetName?
使用ASP.NET表单身份验证,您将如何接受电子邮件地址和密码,使用电子邮件地址查找用户名,然后使用查找的用户名和密码登录?
我们有这个卡系统,有员工编号,但没有人能记住他们的号码.显而易见的是使用登录的电子邮件地址,但应用程序的其余部分取决于用户名是员工编号.
谢谢.代码链接/示例会很棒.
我们当前的C#解决方案以以下引用异常结束:
Response.Write(Membership.GetUser().UserName);
但这两个都很好:
string userName = Membership.GetUserNameByEmail(emailAddress);
bool successfulLogin = Membership.ValidateUser(userName, password);
c# ×5
asp.net-mvc ×2
command-line ×2
reflection ×2
asp.net ×1
batch-file ×1
c#-4.0 ×1
debugging ×1
file-rename ×1
filtering ×1
paging ×1
regex ×1
repository ×1
selectlist ×1
sql ×1
virtuemart ×1
windows ×1