小编NET*_*NET的帖子

保存在实体框架中

我读过这篇文章,但仍然误解了关键时刻.我们不需要打电话

_context.SaveChanges()
Run Code Online (Sandbox Code Playgroud)

在每个删除/更新/ ...操作?

如果我更改任何实体的属性确实SaveChanges()提交结果到数据库或我必须手动设置EntityState.Modifyed

这是我的代码:

public class Repository<T> : IRepository<T> 
    where T : class
{
    private IDbContext _context;

    public Repository(IDbContext context)
    {
        _context = context;
    }

    private IDbSet<T> DbSet
    {
        get
        {
            return _context.Set<T>();
        }
    }

    #region IRepository<T> Members

    public void Insert(T entity)
    {
        DbSet.Add(entity);
    }

    public void Delete(T entity)
    {
        DbSet.Remove(entity);
    }

    public IQueryable<T> SearchFor(Expression<Func<T, bool>> predicate)
    {
        return DbSet.Where(predicate);
    }

    public IQueryable<T> GetAll()
    {
        return DbSet;
    }

    public T GetById(int id) …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework savechanges

9
推荐指数
1
解决办法
1万
查看次数

实体注释属性不起作用

这是我的实体:

[Table( Name = "PdfMeta" )]
public class Meta
{
    [Key()]
    public int Id { get; set; }

    [Column(Name = "TotalPages")]
    public int TotalPages { get; set; }

    [Column(Name = "PdfPath")]
    public string PdfUri { get; set; }

    [Column(Name = "ImagePath")]
    public string ImageUri { get; set; }

    [Column(Name = "SplittedPdfPath")]
    public string SplittedFolderUri { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

这是来自上下文的代码:

      public DbSet<Meta> PdfMeta { get; set; }
Run Code Online (Sandbox Code Playgroud)

为什么用TableUri,PdfUri ...列创建新表(Metas)?我知道这是按惯例完成的,但我已经明确指定了表和列.

c# entity-framework storing-data ef-code-first

6
推荐指数
1
解决办法
2414
查看次数

WCF:relativeAddress,baseAddress和binding

我是WCF的新手,并开始使用一个简单的无文件应用程序,其中一部分(web.config)可以在下面看到:

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true">
        <serviceActivations>
            <add
                factory="System.ServiceModel.Activation.ServiceHostFactory"
                relativeAddress="./RelativeAddress.svc"
                service="WCF_Transactions.MyService1"/>
        </serviceActivations>
    </serviceHostingEnvironment>
Run Code Online (Sandbox Code Playgroud)

现在我可以访问服务了

http://localhost:18148/RelativeAddress.svc
Run Code Online (Sandbox Code Playgroud)

然后我添加下一行:

    <services>
        <service name="WCF_Transactions.MyService1" behaviorConfiguration="MyBehavior1">
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost:18148/" />
                </baseAddresses>
            </host>
            <endpoint  address="/RelativeAddressX.svc" binding="basicHttpBinding" contract="WCF_Transactions.IService1"></endpoint>
        </service>
    </services>

    <behaviors>
        <serviceBehaviors>
            <behavior name="MyBehavior1">
                <serviceMetadata httpGetEnabled="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
Run Code Online (Sandbox Code Playgroud)

所以我希望我的服务可以通过下一个地址访问:

  http://localhost:18148/RelativeAddressX.svc
Run Code Online (Sandbox Code Playgroud)

但我不能这样做.我误解了什么?

wcf web-config wcf-binding

3
推荐指数
1
解决办法
2万
查看次数

iTextSharp:分页大小等于文件大小

这是我拆分大型 PDF (144 mb) 的方法:

public int SplitAndSave(string inputPath, string outputPath)
{
    FileInfo file = new FileInfo(inputPath);
    string name = file.Name.Substring(0, file.Name.LastIndexOf("."));

    using (PdfReader reader = new PdfReader(inputPath))
    {
        for (int pagenumber = 1; pagenumber <= reader.NumberOfPages; pagenumber++)
        {
            string filename = pagenumber.ToString() + ".pdf";

            Document document = new Document();
            PdfCopy copy = new PdfCopy(document, new FileStream(outputPath + "\\" + filename, FileMode.Create));

            document.Open();

            copy.AddPage(copy.GetImportedPage(reader, pagenumber));

            document.Close();
        }
        return reader.NumberOfPages;
    }
}
Run Code Online (Sandbox Code Playgroud)

对于大多数 PDF(小尺寸,我猜是旧格式),一切正常。但是对于更大的(可能使用 refstream 之类的东西来进行更好的压缩),拆分的页面会作为一页打开,但其大小等于原始 PDF 的大小。我能做什么?

c# itext

2
推荐指数
1
解决办法
1418
查看次数

从Web Api Controller返回XML

如何从web api控制器指定return xml?在一个浏览器中,数据以XML格式打开,在另一个浏览器中以JSON格式打开.

编辑

这是我的行动:

    [HttpGet]
    public IEnumerable<MagazineMeta> GetLastUploadPdfMeta(int count)
    {
       List<MagazineMeta> metas = _metaRepository
                 .GetAll()
                 .OrderBy(e => e.TimeAdd)
                 .Take(count)
                 .ToList();

       return metas;
    }
Run Code Online (Sandbox Code Playgroud)

c# xml asp.net-mvc asp.net-web-api

-1
推荐指数
1
解决办法
1万
查看次数