我们假设我们遇到这种情况:
数据库中的表:
Country (id, country_name), Person (id, login), CountryManager (id_country, id_person), CountryStakeholder (id_country, id_person)
如果我们必须从数据库创建模型,使用Entity Framework Database-First,在VS中我们有一个这样的类:
class Country {
int id;
string country_name;
virtual ICollection<Person> Person1; // Navigation Properties
virtual ICollection<Person> Person2; // ---------||----------
}
Run Code Online (Sandbox Code Playgroud)
我已经简化了很多代码,但希望你明白了.
似乎当Entity Framework处理外键时,它会创建通用导航属性.是否有可能控制按名称创建导航属性的方式?不幸的是,Person1,Person2不是很解释.
c# entity-framework naming-conventions foreign-key-relationship navigation-properties
我已经尝试搜索SO以获得答案并偶然发现类似的问题,但我无法使用它们来解决我的问题,所以请尽量不要将其标记为重复.让我们继续谈谈真正的交易:
我有一个通用库,用于标准化实体框架数据库的第一个模型.这些是我创建的泛型类:
public abstract class GenericLookupModel : IActive, ICreated, IModified, IIdentity, IStringValue
{
public bool is_active { get; set; }
public string value { get; set; }
public string description { get; set; }
public DateTime created_on { get; set; }
public string created_by { get; set; }
public DateTime modified_on { get; set; }
public string modified_by { get; set; }
public int id {get;set;}
public void SetCreated(string creator = "SYSTEM")
{
created_by = creator;
created_on = DateTime.Now;
} …Run Code Online (Sandbox Code Playgroud) 伙计们,有什么聪明的方法可以在整个解决方案中轻松找到未使用的文件吗?我的项目由之前的开发人员整合,并且它的尺寸增加了至少3倍.我想缩小项目的规模,但我找不到快捷简便的方法.有什么建议吗?
我想知道哪种方法更适合设计数据库?
我目前有一个大表(每行97列),我可以参考查找表.
将某些列分组到较小的表中并将它们添加到用于引用整行的键列不是更好吗?
我有一个像这样的数据绑定的组合框:
comboBox.InvokeIfRequired(delegate
{
var data = db.GetData();
comboBox.DisplayMember = "Value";
comboBox.ValueMember = "ID";
comboBox.DataSource = data;
});
Run Code Online (Sandbox Code Playgroud)
它工作正常,但会预先选择第一个数据绑定值。我希望组合框预先选择一些占位符,例如“从列表中选择项目...”。
最好的方法/方法是什么?
a)向数据中添加变量为空的项目
b)通过combobox变量属性进行设置吗?如果是这样,哪个?
c)其他
我正在研究一个应该给我结果的查询:
|--Name--|--Surname--|--Language--|--Date-- | | James | Hetfield | en,gb,fr | 2011-01-01| | Lars | Ulrich | gb,fr,ca | 2011-01-01|
但我的选择得到一组行,如:
| James | Hetfield | en | 2011-01-01| | James | Hetfield | gb | 2011-01-01| | James | Hetfield | fr | 2011-01-01| | Lars | Ulrich | gb | 2011-01-01| | Lars | Ulrich | fr | 2011-01-01| | Lars | Ulrich | ca | 2011-01-01|
您建议使用哪种最佳方法将结果集转换为"动态"分组列中的逗号分隔值?我发现CROSS APPLY可以完成这项工作,但人们说这种方法很耗费.作为一个额外的DB有大量的数据.
在此先感谢,问候,阿德里安
为什么var a = 7;要将a类型设置为某种类型(即int代替byte)?C#编译器是否有任何规则/默认值/检查?
我正在编写一个WPF应用程序(新技术,主要是我一直在WinForms编写).我的目标是让UI响应整个时间,并且我已经读过它可以使用Threading/BackgroundWorker获得.我认为我应该使用后台工作者来处理耗时的方法.但我计划使用方法*m_AddLog(string logText)*,它应该将文本附加到文本框.我希望从主UI线程以及后台工作者调用此方法,因此消息将在后台处理时立即发送,而不是等待后台任务结束.你能不能请建议如何正确地写这些方法,让UI完全响应,因为我不太了解代表,调用,后台工作者等等?
我的模型类包含所需的查找值,这是一个基于查找的记录:
[Required]
[DisplayName("Business Unit")]
public string value { get; set; }
[Required] //not working on client side?
[DisplayName("Business Group")]
public int id_businessgroup { get; set; }
Run Code Online (Sandbox Code Playgroud)
视图:
<div class="editor-label">
@Html.LabelFor(model => model.value)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.value)
@Html.ValidationMessageFor(model => model.value)
</div>
<div class="editor-label">
@Html.LabelFor(x=>x.BusinessGroup.value)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.id_businessgroup, new SelectList(ViewBag.BusinessGroups,"id","value"),"Please select group from list...")
@Html.ValidationMessageFor(x => x.id_businessgroup)
</div>
@section scripts{
@Html.Partial("ScriptUseChosen")
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Create()
{
ViewBag.BusinessGroups = DB.BusinessGroups.Where(x => x.is_active).OrderBy(x => x.value).ToList();
return View();
} …Run Code Online (Sandbox Code Playgroud) validation asp.net-mvc client-side-validation html.dropdownlistfor jquery-chosen
我有这个简单的代码:(更新值)
我正在尝试更新列"c"
using (MaxEntities ctx = new MaxEntities())
{
aa orders = (from order in ctx.aa
select order).First();
orders.c = 22;
ctx.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
这是表:
CREATE TABLE [dbo].[aa](
[a] [int] NULL,
[b] [int] NOT NULL,
[c] [int] NOT NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
和里面的价值观:

但我得到一个例外:
属性"c"是对象的关键信息的一部分,无法修改.

我是EF的新手.
任何帮助都感激不尽.
c# ×5
asp.net-mvc ×2
sql-server ×2
asp.net ×1
combobox ×1
data-binding ×1
database ×1
dynamic ×1
generics ×1
image ×1
javascript ×1
performance ×1
solution ×1
sql ×1
t-sql ×1
textbox ×1
validation ×1
winforms ×1
wpf ×1