我对 .NET 还很陌生,但是现在已经在这个项目上工作了一段时间,进展甚微,而且随着课程数量的增加,它变得有点不堪重负。
客观的:
从实体框架表生成数据(应该使用 LINQ)<- LINQ 似乎正在工作。
将数据转换为 XML <-根本不工作
如果不工作,则发送电子邮件<-这工作得很好,很奇怪,哈哈;)
谁能给我一个代码示例,您可以在其中通过 DataContract 连接到实体并序列化(如果这是最好的方法,可能使用泛型)到 XML Writer?根据这里的评论是我想要的一个样本。-- 所以我们还说,在这个模型中,我们想要加入“DIRTYMIKE”表,其中包括“男孩”作为一个对象,其名称将通过 xml 和 PRIUS 中的“CARS”表通过 id 提取显然这是一个理论上的实体集,但希望它能给某人带来笑声:)
这是我刚刚开始的一些理论课-希望这能更多地解释目标是什么:
public class TheOtherGuys
{
private static ILog log;
private string theBoysWrapper;
private int rowsRead = 0;
private int outputRecords = 0;
private bool warnings = false;
private bool fatal = false;
private bool fatalMsg = false;
/// <summary>
/// Next wrap the xml with a Document Wrapper and Element Wrapper
/// </summary>
public TheOtherGuys(ILog log)
{
XmlDocument doc = new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", null, null);
doc.AppendChild(dec);//creates root
XmlElement root = doc.CreateElement("DIRTYMIKE");
doc.AppendChild(root);
XmlElement nextElem = doc.CreateElement("THEBOYS");
log = LogManager.GetLogger(this.GetType());
if (log.IsDebugEnabled == true)
{
log.Debug(GetType().Name + ".Constructor(): enter");
}
//creates new xml Document and set up declaration and root
if (log.IsDebugEnabled == true)
{
log.Debug(GetType().Name + ".Constructor(): exit");
}
}
//Read data from DIRTY_MIKE_AND_THE_BOYS and CAR Tables
//Translate the results into xml
private void process(DateTime process) {
XmlDocument doc = new XmlDocument();
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", null, null);
doc.AppendChild(dec);//creates root
XmlElement root = doc.CreateElement("OTHERGUYS");//maybe a conditional statement to change the root to 'OTHERGUYS'
doc.AppendChild(root);
XmlElement nextElem = doc.CreateElement("CAR");
doc.AppendChild(nextElem);
if (log.IsDebugEnabled == true)
{
log.Debug(GetType().Name + ".process(): enter - prius=" + process);
}
StringBuilder sb = new StringBuilder();
sb.Append(" select ");
sb.Append(" 'PRIUS' CAR, "); // 1
sb.Append(" 'PJM' MKT_CD, "); // 2
sb.Append(" decode(to_char(lh.time_id-1/24, 'HH24'), '00', ");
sb.Append(" to_char(lh.time_id-1, 'YYYYMMDD'), to_char(lh.time_id-1/24, 'YYYYMMDD')) START_DT, "); // 3
sb.Append(" decode(to_char(lh.time_id-1/24, 'HH24'), '00', ");
sb.Append(" '240000', to_char(lh.time_id-1/24, 'HH24MISS')) START_TIME, "); //4
sb.Append(" decode(to_char(lh.time_id, 'HH24'), '00', ");
sb.Append(" to_char(lh.time_id-1, 'YYYYMMDD'), to_char(lh.time_id, 'YYYYMMDD')) END_DT, "); // 5
sb.Append(" decode(to_char(lh.time_id, 'HH24'), '00', ");
sb.Append(" '240000', to_char(lh.time_id, 'HH24MISS')) END_TIME, "); // 6
sb.Append(" cars._car_id TX_PT, "); //8
sb.Append(" lh.data_value TARGET_FD "); // 12
sb.Append("from DATABASE.MYTABLE lh, ");
sb.Append(" DATABASE.CAR car_id ");
sb.Append("where lh.car_id = unit.car_id ");
sb.Append("AND lh.time_id > to_date(?, 'MM/DD/YYYY') ");
sb.Append("AND lh.time_id <= to_date(?, 'MM/DD/YYYY' ) + 1 ");
sb.Append("AND lh.atb_data_category = 69 AND lh.data_value <> 0 ");
sb.Append(" order by ");
sb.Append(" lh.time_id, lh.car_id ");
sb.ToString();// or something like that
myDataLayer.theOtherGuysEntitie nme = new myDataLayer.theOtherGuysEntities(myConnection.getEntityFrameworkConnection(typeof(myDataLayer.theOtherGuysEntities)));
if (log.IsDebugEnabled == true)
{
log.Debug(GetType().Name + ".process(): odb" + odb);
try
{
DateTime dt = DateTime.ParseExact(processingDate.ToString(), "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
string s = dt.ToString("dd/M/yyyy");
}catch(Exception e) {
fatal=true;
fatalMsg = true;
if(log.IsFatalEnabled==true) {
log.Fatal(GetType().Name + ".process(): exception", e);
}
Console.Error.WriteLine("The OtherGuys Failed Dirty Mike is in the Prius with name{}, name{1}, name{2}, name {3}.");
//Really I am supposed to use LINQ for the querying
// and then conditionalstatementsthrough my business logic to handle the decoding
再次感谢!!