我将使用外键在Employee和Team实体之间创建两个引用.所以我定义了两个实体如下
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
[ForeignKey("FirstTeam")]
public int FirstTeamId { get; set; }
[InverseProperty("FirstEmployees")]
public virtual Team FirstTeam { get; set; }
[ForeignKey("SecondTeam")]
public int SecondTeamId { get; set; }
[InverseProperty("SecondEmployees")]
public virtual Team SecondTeam { get; set; }
}
public class Team
{
public int Id { get; set; }
public string TeamName { get; set; }
[InverseProperty("FirstTeam")]
public virtual ICollection<Employee> FirstEmployees { get; set; …Run Code Online (Sandbox Code Playgroud) 此问题与AutoMapper无关.我的问题是关于java中的ModelMapper,但是我无法为modelmapper创建新的标签作为我的小声誉.抱歉混淆.
无论如何,我的问题是modelmapper库是否支持arraylist或hashset等集合?它似乎不支持集合映射的集合.这是真的吗?
最近,我意识到MVVM模式对Silverlight应用程序非常有用,并研究如何将它应用到我的项目中.
顺便说一句,如何用Command连接文本框的textChanged事件?Button有Command属性,但Textbox没有commapd属性.如果Controls没有命令属性,如何组合ICommand和Control的事件?
我得到了以下xaml代码
<UserControl.Resources>
<vm:CustomerViewModel x:Key="customerVM"/>
</UserControl.Resources>
<Grid x:Name="LayoutRoot"
Background="White"
DataContext="{Binding Path=Customers, Source={StaticResource customerVM}, Mode=TwoWay}" >
<StackPanel>
<StackPanel Orientation="Horizontal"
Width="300"
HorizontalAlignment="Center">
<TextBox x:Name="tbName"
Width="50"
Margin="10"/>
<Button Width="30"
Margin="10"
Content="Find"
Command="{Binding Path=GetCustomersByNameCommand, Source={StaticResource customerVM}}"
CommandParameter="{Binding Path=Text, ElementName=tbName}"/>
</StackPanel>
<sdk:DataGrid ItemsSource="{Binding Path=DataContext, ElementName=LayoutRoot}"
AutoGenerateColumns="True"
Width="300"
Height="300"/>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
我想要做的是,如果用户在文本框中输入一些文本,数据将显示在数据网格中而不是使用按钮单击.我知道内置了自动完成框控件.但是,我想知道如何在没有Command属性的控件中调用ViewModel类中的Command属性,例如textbox.
谢谢
我正在使用EF4与WCF和POCO.我删除了POCO实体中的所有虚拟关键字.
我有Employee和Team实体,两者之间的关系是1:N,意味着一个员工只能分配一个团队.
我想在现有团队中添加新员工.以下代码位于客户端.
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
Team teamFromDb = ServiceProxy.GetService.GetTeamById(181);
Employee newEmp = new Employee{ UserName="username"};
newEmp.Team = teamFromDb;
ServiceProxy.GetService.AddEmployee(newEmp);
}
Run Code Online (Sandbox Code Playgroud)
以下代码在服务器端(Dao层)
public void AddEmployee(Employee emp)
{
ctx.Employees.AddObject(emp);
}
public Team GetTeamById(int teamId)
{
return ctx.Teams.Where(t => t.TeamId == teamId).FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
问题是当我将teamFromDb实例添加到客户端代码中的newEmp.Team属性时,我收到了"Collection is a fixed size"异常.
我是否需要添加更多代码才能修复?
此外,对于POCO类和WCF的插入/更新/删除作业,我需要什么
提前致谢.
我正在使用Entity Framework 4.1.什么流畅的api方法对应于Data Annotations API中的[Timestamp]属性来检查并发性?
我有以下实体
public class SchoolContext : DbContext
{
public DbSet<Address> Addresses { get; set; }
public DbSet<Employee> Employees { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public virtual Employee Employee { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Address Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我使用以下Fluent API在Employee和Address之间设置关系
protected override …Run Code Online (Sandbox Code Playgroud) 我得到以下代码:
$.ajax({
type: "POST",
async: false,
url: "CheckIdExist",
data: param,
success: function(result) {
if (result == true){
return false;
}
},
error: function(error) {
alert(error);
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
如果ajax返回值为true,则表单需要停止提交.
但它并没有停止提交表格.
请帮忙.
我有一个以下WCF方法
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "UserService/AddUser", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public User AddUser(string LoginId, string Name)
{
var user = input;
// Some business logic here
return user;
}
Run Code Online (Sandbox Code Playgroud)
我有一个jQuery Ajax客户端代码如下
<script type="text/javascript">
$(document).ready(function () {
$("#submit").click(function () {
var input =
{
LoginId: $("#LoginId").val(),
Name: $("#Name").val()
};
$.ajax({
cache: false,
type: "POST",
async: false,
url: "http://localhost:2000/UserService/AddUser",
data: JSON.stringify(input),
contentType: "application/json",
dataType: "json",
success: function (userViewModel) {
var user = userViewModel;
alert(user);
}
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
一旦ajax调用AddUser方法LoginId和Name值在AddUser方法的两个参数中设置,但是,我想要做的是拥有一个方法签名如下
public …Run Code Online (Sandbox Code Playgroud) 我使用linqtosql并在linq查询中,我试图将datetime类型列转换为字符串,如'dd-MM-yy'.但是,我收到如下错误:
NotSupportedException:方法'System.String ToString(System.String)'没有支持的SQL转换.
以下是我的linq查询:
from ffv in Flo_flowsheet_values
where ffv.Flowsheet_key == 2489
&& ffv.Variable_key == 70010558
&& ffv.Status == 'A'
&& ffv.Column_time >= DateTime.ParseExact("2010-06-13 00:00", "yyyy-MM-dd HH:mm", null)
&& ffv.Column_time <= DateTime.ParseExact("2010-06-13 22:59", "yyyy-MM-dd HH:mm", null)
select new {
ColumnTime = ffv.Column_time
,ColumnTimeForXCategory = ffv.Column_time.Value.ToString("dd-MM-yy") ***====> this statement invoke error***
,BTValue = Convert.ToDouble( ffv.Value) }
Run Code Online (Sandbox Code Playgroud) 我使用MEF作为DI容器,问题是我想从多个部分导入特定部分.
例如,我有以下代码:
public interface IService
{
void Send();
}
[Export(typeof(IService))]
public class Service : IService
{
public void Send()
{
Console.WriteLine("Service.Send");
}
}
[Export(typeof(IService))]
public class FakeService : IService
{
public void Send()
{
Console.WriteLine("FakeService.Send");
}
}
[Import]
public IService Service { get; set; } // ---> let's say I want to use FakeService
Run Code Online (Sandbox Code Playgroud)
有什么解决方案吗?
提前致谢
我正在将KnockoutJS与SammyJS一起用于一个页面应用程序.
在html我有表格标签如下
<form data-bind='submit: search'>
<label>Find user:</label>
<input data-bind='value: name' />
</form>
Run Code Online (Sandbox Code Playgroud)
并在我的viewmodel中,声明了两个函数和sammy route url
function ViewModel() {
var self = this;
self.name = ko.observable("");
self.search = function () {
alert(self.name);
};
Sammy(function () {
this.get('#:id', function () {
//do something....
});
}).run();
}
ko.applyBindings(new ViewModel());
Run Code Online (Sandbox Code Playgroud)
所有代码都运行良好,直到我在文本框中键入内容然后提交表单.我预计在警报窗口之后没有网址浏览,但网址会更改为"http:// localhost:8258/undefined?" 我原来的网址是"http:// localhost:8258"
我怀疑sammy url路由,所以从javascript代码中删除了sammy代码,然后在警报窗口后url不会改变.也许我不明白sammy是如何运作的.
如何防止url改变这种情况?
我的Model类如下:
public class PostInputViewModel
{
[Required]
[MinLength(1)]
[MaxLength(125)]
public string Title { get; set; }
[Required]
[AllowHtml]
[Display(Name="Content")]
public string Content { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和控制器如下:
[HttpPost]
public ActionResult Write(PostInputViewModel input)
{
if (!ModelState.IsValid)
return View(input);
var post = new Post
{
Title = input.Title,
Content = input.Content,
DateCreated = DateTime.Now,
DateModified = DateTime.MaxValue,
};
dbContext.Posts.Add(post);
dbContext.SaveChanges();
return RedirectToAction("Index", "Home");
}
Run Code Online (Sandbox Code Playgroud)
当我通过单击F5运行Web应用程序时,如果我没有输入标题和内容值,则ModelState.IsValid为false,但是如果我使用单元测试用例测试控制器类,则ModelState.IsValid始终为true.测试用例如下:
[TestMethod]
public void write_should_validate_model()
{
var input = new PostInputViewModel();
input.Title = null;
input.Content = null;
var …Run Code Online (Sandbox Code Playgroud) c# ×3
jquery ×2
wcf ×2
entity ×1
forms ×1
java ×1
knockout.js ×1
linq-to-sql ×1
mapping ×1
mef ×1
modelmapper ×1
mvvm ×1
sammy.js ×1
silverlight ×1
submit ×1
xaml ×1