我一直在寻找有关如何使用代码首先EF 4.1声明外键关系和其他约束的资源,而没有太多运气.基本上我是在代码中构建数据模型并使用MVC3来查询该模型.一切都通过MVC工作,这是伟大的(对微软的赞誉!)但现在我希望它不工作,因为我需要有数据模型约束.
例如,我有一个Order对象,它有很多属性是外部对象(表).现在我可以创建一个没有问题的订单,但是无法添加外键或外部对象.MVC3设置这没问题.
我意识到我可以在保存之前在控制器类中自己添加对象,但是如果没有满足约束关系,我希望调用DbContext.SaveChanges()失败.
新的消息
所以,具体来说,当我尝试保存Order对象而不指定客户对象时,我希望发生异常.如果我只是编写大多数Code First EF文档中描述的对象,这似乎不是行为.
最新代码:
public class Order
{
public int Id { get; set; }
[ForeignKey( "Parent" )]
public Patient Patient { get; set; }
[ForeignKey("CertificationPeriod")]
public CertificationPeriod CertificationPeriod { get; set; }
[ForeignKey("Agency")]
public Agency Agency { get; set; }
[ForeignKey("Diagnosis")]
public Diagnosis PrimaryDiagnosis { get; set; }
[ForeignKey("OrderApprovalStatus")]
public OrderApprovalStatus ApprovalStatus { get; set; }
[ForeignKey("User")]
public User User { get; set; }
[ForeignKey("User")]
public User Submitter { get; set; }
public DateTime …
Run Code Online (Sandbox Code Playgroud) 我得到一个循环引用序列化错误,但据我所知,我没有任何循环引用.我正在从数据库中检索一组订单并将它们作为JSON发送到客户端.所有代码如下所示.
这是错误:
错误
序列化"System.Data.Entity.DynamicProxies.Order_83CECF2AA4DE38232F9077D4B26941AB96BC61230419EA8AC42C9100E6072812"类型的对象时检测到循环引用.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.InvalidOperationException:序列化"System.Data.Entity.DynamicProxies.Order_83CECF2AA4DE38232F9077D4B26941AB96BC61230419EA8AC42C9100E6072812"类型的对象时检测到循环引用.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
我的课程如下:
订购
public class Order
{
[Key]
public int OrderId { get; set; }
public int PatientId { get; set; }
public virtual Patient Patient { get; set; }
public int CertificationPeriodId { get; set; }
public virtual CertificationPeriod CertificationPeriod { get; set; }
public int AgencyId { get; set; }
public virtual Agency Agency { get; set; }
public int PrimaryDiagnosisId { get; set; }
public virtual Diagnosis PrimaryDiagnosis { get; set; …
Run Code Online (Sandbox Code Playgroud) 这些存在吗?
多年来,我一直是大型强类型OO语言(Java和C#)的奴隶,并且是Martin Fowler及其同类的奉献者.Javascript,由于它的松散类型和功能性似乎不适合我习惯的习语.
组织javascript富客户端的最佳做法是什么?我感兴趣的是从哪里保存你的代码(一个文件或多个文件)到MVC模式到四个模式到分层.
没有把东西放在全局命名空间似乎是唯一的共识.
我使用JQuery作为"扩展API".
我已使用以下命令成功将PNG转换为SVG:
convert Slide3.png Slide3_converted.svg
Run Code Online (Sandbox Code Playgroud)
问题是生成的文件高达380MB!
我试过这个版本的命令:
convert -size 2000x1200 Slide3.png Slide3_converted_smaller.svg
Run Code Online (Sandbox Code Playgroud)
但没有骰子.大小相同.
我刚刚开始了一个以前在Eclipse中开发的新项目.我从2006年开始就没有使用过Eclipse,那时候是一个非SVN控制的短项目.我在NetBeans和Visual Studio方面拥有丰富的经验.
代码库位于SVN存储库中.我已经安装了Eclipse(Helios)和TortiseSVN并下载了源代码.我看到有一个.project文件,它包含一些eclipse引用.
我想导入项目,以便我可以在SVN控件下编辑文件.然后我想通过Tortoise客户端提交文件,或者更理想的是直接在Eclipse中提交文件.
我已经在这个论坛上回顾了几个网站和问题,但是还没有找到这个特定用例的方法.
我需要一个具有类似于Java中的Set的API的Set.
这个实现:
http://jsclass.jcoglan.com/set.html
需要使用RequireJS,这需要我的Java大脑此刻扭曲太多.
发布功能是Set的功能将是一个很好的答案.或者是已经创建此代码的Google Set或其他技术巨头的链接.
Google的关闭怎么样?这个名字让我很困惑,但它有一套.
所以我似乎无法创建任何新项目或解决方案.我可以导航和打开现有的解决方案,但无法创建任何新的解决方案.所有帮助表示赞赏.见下面的截图:
当我尝试将XML解组为java代码时,我得到以下异常.好像我错过了某处的命名空间声明,但我不知道在哪里.
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"wg_provider").
Expected elements are <{http://www.warriorgateway.org/WGProvider.xsd}wg_provider>
Run Code Online (Sandbox Code Playgroud)
此文件最初是使用JAXB marshaller创建的:
JAXBContext providerContext = JAXBContext.newInstance(WgProvider.class);
Marshaller providerMarshaller = providerContext.createMarshaller();
providerMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter providerWriter = new StringWriter();
providerMarshaller.marshal(provider, providerWriter);
Run Code Online (Sandbox Code Playgroud)
这是Schema文件的顶部:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.warriorgateway.org/WGProvider.xsd"
xmlns:ns1="http://www.warriorgateway.org/WGProvider.xsd"
elementFormDefault="qualified">
<xsd:element name="wg_provider">
<xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
这是要解组的XML文件的顶部:
<?xml version="1.0" encoding="UTF-8"?>
<wg_provider xmlns="http://www.warriorgateway.org/WGProvider.xsd">
<ein>26-0081701</ein>
<name>MOMS CLUB</name>
<is_virtual>false</is_virtual>
<description>
</description>
Run Code Online (Sandbox Code Playgroud)
这是JAXB生成的Java文件的顶部:
@XmlRootElement(name = "wg_provider" )
public class WgProvider {
Run Code Online (Sandbox Code Playgroud)
我尝试将命名空间元素添加到Annotation,但它没有任何区别.
这是package-info.xml内容:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.warriorgateway.org/WGProvider.xsd", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package org.warriorgateway.api.model.wg;
Run Code Online (Sandbox Code Playgroud)
最后这里是解组代码:
for (String wrappedProviderXML : wrappedProviderXMLList) {
DocumentBuilderFactory documentbuilderFactory = DocumentBuilderFactory.newInstance(); …
Run Code Online (Sandbox Code Playgroud) 我把这个String并解析为一个Javascript对象.
{
"startTime": 233432420233,
"endTime": 233432431000,
"bufferingDelays": [
{
"time": 233432420233,
"delayLength": 100
},
{
"time": 233432420433,
"delayLength": 50
},
{
"time": 233432420833,
"delayLength": 75
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是执行解析的Javascript代码,然后转换为JSON字符串:
var reportObject = jQuery.parseJSON(reportJSONString);
reportObject.startTime = new Date(reportObject.startTime);
reportObject.endTime = new Date(reportObject.endTime);
for (var i = 0; i < reportObject.bufferingDelays.length; i++)
{
var delay = reportObject.bufferingDelays[i];
delay.time = new Date( delay.time );
reportObject.bufferingDelays[i] = delay;
}
var reportObjectFinalString = JSON.stringify( reportObject );
Run Code Online (Sandbox Code Playgroud)
JSON转换产生的日期之一是:1977-05-25T18:20:20.233Z
.我认为尾随'Z'很糟糕.
现在在Java中我尝试将其解析为Java对象,如下所示:
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").create(); …
Run Code Online (Sandbox Code Playgroud) 我需要查询XML
MarkLogic服务器并将其编组为Java对象.有什么好办法可以解决这个问题?特别:
有人问我为什么要使用Java.我正在使用Java/Java EE,因为我在该语言中表现最强.这是一个单人项目,我不想被困在任何地方.该项目旨在开发Web服务API以及数据处理和转换(CSV到XML)功能.Java/Java EE可以做得很好并且优雅地完成它.
java ×3
javascript ×3
json ×2
xml ×2
architecture ×1
c# ×1
collections ×1
eclipse ×1
gson ×1
imagemagick ×1
jaxb ×1
jquery ×1
marklogic ×1
set ×1
solution ×1
svn ×1
xsd ×1